一 基本语法
二 构建动态库
目的: 构建一个'库'供'他人'使用
① 新建目录演示
② 添加头文件
1)我们一般在'.h后缀'的'头文件'里面只放入'函数声明'、'宏定义'、'函数原型'
h -->'header'
2)而'具体的实现'在.cpp文件里面
3)在'编译(compile)'的时候,编译器会'自动加载'和'.h'匹配的'.cpp'文件
1)命名规则
核心: '独一无二'的,不要冲突
2)如何编写头文件
3)最终效果
③ 头文件的具体实现
'注意': 'hello_lirary'函数重命名为'hello_library'
④ 主程序
目的: 调用'动态生成库中定义'的hello_lirary函数
⑤ 编辑CMakeLists.txt文件
'注意': add_library()函数中'HelloLirary.cpp'应为'HelloLibrary.cpp' -->少了一个字符'b'
⑥ 采用外部编译
生成cmake的'工程文件'CMakeLists.txt文件
⑦ 修改CmakeLists错误
cmake3 ../CmakeLists --> make Makefile('编译') -->生成'这里是动态库'和'二进制可执行文件'
collect2: error: ld returned 1 exit status 解决方案
(.text+0x13): undefined reference to
备注: 报错的'原因'--> 'HelloLibrary.cpp'中函数的定义有问题
本来应该是'hello_library()',实际'错误'的定义为'hello_lirary()'
⑧ 修改HelloLibrary.cpp错误
细节: '动态库'会在前面'自动'加上'lib'的'前缀'
⑨ 测试二进制可执行文件
三 构建静态库
① 保持环境的干净
② 修改CMakeLists.txt文件
目的: 生成'静态'库,而不是'动态'库
kiosk@k8s build $ vim ../CMakeLists.txt
③ 修改头文件的实现
备注: 函数的实现'象征性'的修改下
vim ../HelloLibrary.cpp
④ 测试
四 静态库和动态库的区别