不同类型的共享库

时间:2020-07-03 12:30:52

标签: linux libraries

我正在使用assimp(在Linux上)将3D模型加载到我的项目中,并且构建库本身非常容易,因为它具有一个cMakeLists.txt文件来自动执行构建过程。但是,一旦构建了库,它将为文件夹assimp提供以下结构:

enter image description here

我认为这里要注意的三个主要文件夹是binlibinclude

我的项目结构基本上是这样的:

enter image description here

我基本上用来编译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  

但是,我对库的工作方式有一些基本的困惑:

  1. 从源代码编译assimp时,在lib文件夹中(如图所示) 在第一张图片中),共有3个共享库,它们以.so结尾, .so.5.so.5.0.0。这三个库都一样吗?做什么 表示数字的后缀?
  2. 当我使用lib标志指向-L文件夹时,哪个是 用于链接的库? .so.so.5.so.5.0.0
  3. 如果运行时缺少libassimp.so.5库, 应用程序,则该应用程序将无法运行。意思是不是 libassimp.so.5是在编译和链接期间使用的?如果是这样,为什么?

0 个答案:

没有答案