代码地址 cmake-examples/01-basic/D-shared-library at master · ttroy50/cmake-examples · GitHub
文件结构
1. 添加动态链接库
和静态链接一样 这个add_library 同样可以生成动态链接库。
2. 别名目标
3. 添加动态链接库
方法和静态链接库相同。
-------------------------------------------
这里补充下 -Wl 的含义。就是在可执行文件中,写入lib的优先路径。
感觉还是要学g++的一些指令才行。
---------------------------------------------
这里的-rdynamic也是的讲解 这里也可以看下
gcc或g++的编译选项 -shared -fPIC 与 -g -rdynamic 部分转载_字正腔圆的博客-CSDN博客_g++ -shared
----------------------------------------------------
还有一个思考,就是为什么都要有个target_include_directories?
应为没有这个include文件,那么在后面编译的时候,根本看不到这个库里面的函数或者类。
也就是main.cpp 里面不知道如何调用Hello.cpp的内容。因为看不到那个dll里面的内容。所以编译就会出错,他会说你根本没有定义。
如果定义了的话, 那么就可以过编译,之后只要再链接的时候成功成功找到那么就没问题。
但是如果没定义,那么根本就不知道有这么个东西。
所以把这些库的里面的一些接口暴露在.h中意义重大。
------------------------------------
动态链接库
这里的静态lib一定需要吗?