CMake编译中的库文件和头文件链接是什么
发表于:2025-02-14 作者:千家信息网编辑
千家信息网最后更新 2025年02月14日,这篇文章主要介绍了CMake编译中的库文件和头文件链接是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇CMake编译中的库文件和头文件链接是什么文章都会有所收获,下面
千家信息网最后更新 2025年02月14日CMake编译中的库文件和头文件链接是什么
这篇文章主要介绍了CMake编译中的库文件和头文件链接是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇CMake编译中的库文件和头文件链接是什么文章都会有所收获,下面我们一起来看看吧。
外部库文件、头文件链接
指令
头文件搜索路径
INCLUDE_DIRECTORIES([AFTER|BEFORE] [SYSTEM] dir1 dir2 ...)
[AFTER|BEFORE] :添加方式,默认
AFTER AFTER:在后方进行追加内容(新加入内容在后)
BEFORE:在前方进行追加内容(新加入内容在前)
dir:头文件路径地址,含有空格的路径应用双引号括起
链接库文件
LINK_DIRECTORIES(directory1 directory2 ...)
directory
:库文件名称
该指令用于添加非标准共享库搜索路径。
TARGET_LINK_LIBRARIES(target library1library2 ... )
target
:被链接的对象library:库名称
实例
此处采用之前生成安装好的库文件libhello.so
进行演示。
新建工程空间
首先,新建工程文件并定义工程CMakeLists.txt
文件。
# 新建工程空间t4mkdir -p ~/cmake_test/t4cd ~/cmake_test/t4# 新建子目录srcmkdir src# 新建工程CMakeLists.txtvim CMakeLists.txt
子目录src
用于存放源代码,工程根目录下的CMakeLists.txt
内容如下:
# 工程名PROJECT(NEWHELLO)# 添加源码目录ADD_SUBDIRECTORY(src)
定义src内容
进入子目录src
,新建源文件main.cpp
# 进入src子目录cd ~/cmake_test/t4/src# 新建源文件vim main.cpp
main.cpp
文件内容如下:
// main.cpp#includeusing namespace std;int main(){ HelloFunc(); return 0;}
源文件中调用了之前封装的HelloFunc
函数,应将其头文件及链接进行定义。在src
目录中新建CMakeLists.txt
,其内容如下:
# 添加头文件搜索路径INCLUDE_DIRECTORIES(/usr/include/hello)# 添加链接TARGET_LINK_LIBRARIES(main libhello.so)# 生成目标二进制文件ADD_EXECUTABLE(main main.cpp)
上述语句,将动态库libhello.so
同main
进行链接,并将头文件加入搜索路径中。此外,也可以选择链接静态库libhello.a
,只需将其修改为如下即可:
# 添加链接TARGET_LINK_LIBRARIES(main libhello.a)
编译
在t4根目录中新建build
子目录用于编译:
# 新建build子目录cd ~/cmake_test/t4mkdir build & cd build# 构建cmake ..# 编译make -j12
此时,将在build/src
中生成可执行二进制文件main
,运行该程序效果如下:
# 运行程序cd ~/cmake_test/t4/build/srcbash main# 程序输出:Hello World
关于"CMake编译中的库文件和头文件链接是什么"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"CMake编译中的库文件和头文件链接是什么"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。
文件
链接
内容
库文件
编译
工程
子目
子目录
路径
搜索
源文件
知识
程序
二进制
名称
指令
根目录
目录
空间
篇文章
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库assl是什么类型
关于手机系统及网络安全
数据库model作用
网络安全教育活动开展总结
互联网科技行业平台
网络安全是不是早九晚五
回家建立网络安全检测和信息
政府网络安全中心工作总结
中职计算机网络技术学考网课
音王点歌机服务器区域能破解吗
专业服务器租用
数据库的维护技术要求
网络技术有限公司名称推荐
db2 数据库安装教程
按键移动小精灵服务器在线验证中
百度钱包网络技术有限公司
数据库远程查询条数时多时少
如何测试数据库保存的速度
鸿星网络技术有限公司怎么样
南京网络安全实战培训哪里学
择善南京互联网科技有限公司
三个帮网络技术有限公司
net110网络安全审计
个人网络安全软件排行
网络安全安卓版
16路服务器主板
软件开发错字
网络安全红线案例
网络安全专家们
acc数据库是开源的吗