OSG动态库+Qt5环境搭建说明

本项目除了源码主要涉及的依赖库有openLIB和osgLIB

osgLIB动态库主要包含三部分:第三方依赖、osg库和osg数据,主要使用build文件

bin文件内是存放动态库(.dll)、二进制文件或可执行程序(.exe),
include文件存放库的头文件(.h)
lib文件存放动态库的导入库文件(.lib)



动态库的使用与静态库不同,静态库只需要2个文件:头文件(.h)、库文件(.lib),
而动态库需要三个文件: 头文件(.h)、导入库(.lib)、动态库(.dll), 每当我们使用动态库里的函数时执行的流程为先在头文件找到声明再去导入库中定位函数主体位置,拿到地址再在动态库中找到函数。

因此在Qt配置编译环境时,主要是.pro文件中添加所依赖的库地址,因为Qt添加外部库只需要两个地址,1是库地址,2是头文件地址,所以我们需要提前将我们需要的动态库文件和导入库文件放在一个文件夹中。

项目中需要的动态库主要就以下8个:

同时Qt的.pro文件需要加上以下代码,功能是编译时链接所需要的动态库,注意库地址头文件地址必须书写正确,$$PWD指的是.pro所在的文件 ../指上一级目录

libpath = $$PWD/../osgLIB/build/lib/
win32: LIBS += -L$$libpath -lOpenThreadsd \
               -L$$libpath -losgd \
               -L$$libpath -losgDBd \
               -L$$libpath -losgGAd \
               -L$$libpath -losgQt5d \
               -L$$libpath -losgTextd \
               -L$$libpath -losgUtild \
               -L$$libpath -losgViewerd \

INCLUDEPATH += $$PWD/../osgLIB/build/include
DEPENDPATH += $$PWD/../osgLIB/build/include

INCLUDEPATH += $$PWD/../openLIB
INCLUDEPATH += $$PWD/../openLIB/Eigen/src/LU

出现问题

  • 以上编译环境的配置完成后, 使用Qt编译通过,但运行程序崩溃,一般原因是还是缺少某个动态库, 可以找到工程目录双击exe文件,会提示缺少的动态库, 我这里缺少的是zlibd.dll文件,在3rdPatry文件夹中有, 找到并添加到osgLIB的bin目录中
  • 如果只是配置好了Qt的编译环境,这时候双击exe文件依然会提示缺少那8个需要的动态库,原因是exe文件运行时需要到系统环境变量中去找动态库,所以还需要配置系统环境变量,找到osgLIB中的bin文件,将他添加到环境变量中

附录

osg库已经配置好了,直接下载放到工程目录中,将上述代码添加到.pro文件中即可,如果不行检查库地址libpath对不对
osgLIB和openLIB百度云下载 提取码:bwy5

你可能感兴趣的:(OSG动态库+Qt5环境搭建说明)