Cmake 3 动态链接库

代码地址 cmake-examples/01-basic/D-shared-library at master · ttroy50/cmake-examples · GitHub

文件结构

Cmake 3 动态链接库_第1张图片

1. 添加动态链接库

Cmake 3 动态链接库_第2张图片 和静态链接一样 这个add_library 同样可以生成动态链接库。

2. 别名目标

Cmake 3 动态链接库_第3张图片

 3. 添加动态链接库

Cmake 3 动态链接库_第4张图片

方法和静态链接库相同。

-------------------------------------------

这里补充下 -Wl 的含义。就是在可执行文件中,写入lib的优先路径。

Cmake 3 动态链接库_第5张图片

 感觉还是要学g++的一些指令才行。

---------------------------------------------

这里的-rdynamic也是的讲解 这里也可以看下

Cmake 3 动态链接库_第6张图片

gcc或g++的编译选项 -shared -fPIC 与 -g -rdynamic 部分转载_字正腔圆的博客-CSDN博客_g++ -shared

----------------------------------------------------

还有一个思考,就是为什么都要有个target_include_directories

Cmake 3 动态链接库_第7张图片

应为没有这个include文件,那么在后面编译的时候,根本看不到这个库里面的函数或者类。

Cmake 3 动态链接库_第8张图片

Cmake 3 动态链接库_第9张图片

也就是main.cpp 里面不知道如何调用Hello.cpp的内容。因为看不到那个dll里面的内容。所以编译就会出错,他会说你根本没有定义。

如果定义了的话, 那么就可以过编译,之后只要再链接的时候成功成功找到那么就没问题。

但是如果没定义,那么根本就不知道有这么个东西。

所以把这些库的里面的一些接口暴露在.h中意义重大。

------------------------------------

动态链接库

windows动态链接库使用方法 - 走看看

Cmake 3 动态链接库_第10张图片

这里的静态lib一定需要吗?

你可能感兴趣的:(cmake,c++,开发语言)