我正在使用assimp(在Linux上)将3D模型加载到我的项目中,并且构建库本身非常容易,因为它具有一个cMakeLists.txt
文件来自动执行构建过程。但是,一旦构建了库,它将为文件夹assimp
提供以下结构:
我认为这里要注意的三个主要文件夹是bin
,lib
和include
我的项目结构基本上是这样的:
我基本上用来编译main7.cpp
文件的命令是这样的:
> g++ -std=c++17 -I/home/lighting -I/home/lighting/assimp/include -L/home/lighting/assimp/lib /home/lighting/glad/src/glad.c main7.cpp -o main.out -lGL -lGLU -lglfw -ldl -lassimp
但是,我对库的工作方式有一些基本的困惑:
lib
文件夹中(如图所示)
在第一张图片中),共有3个共享库,它们以.so
结尾,
.so.5
和.so.5.0.0
。这三个库都一样吗?做什么
表示数字的后缀?lib
标志指向-L
文件夹时,哪个是
用于链接的库? .so
,.so.5
或.so.5.0.0
?libassimp.so.5
库,
应用程序,则该应用程序将无法运行。意思是不是
libassimp.so.5
是在编译和链接期间使用的?如果是这样,为什么?