iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >CMake编译中的库文件和头文件链接你了解吗
  • 250
分享到

CMake编译中的库文件和头文件链接你了解吗

2024-04-02 19:04:59 250人浏览 八月长安
摘要

目录外部库文件、头文件链接指令头文件搜索路径链接库文件实例新建工程空间定义src内容编译总结外部库文件、头文件链接 指令 头文件搜索路径 INCLUDE_DIRECTORIES([A

外部库文件、头文件链接

指令

头文件搜索路径

INCLUDE_DIRECTORIES([AFTER|BEFORE] [SYSTEM] dir1 dir2 ...)
  • [AFTER|BEFORE] :添加方式,默认
    • AFTER AFTER:在后方进行追加内容(新加入内容在后)
    • BEFORE:在前方进行追加内容(新加入内容在前)
  • dir:头文件路径地址,含有空格的路径应用双引号括起

链接库文件

LINK_DIRECTORIES(directory1 directory2 ...)

directory:库文件名称

该指令用于添加非标准共享库搜索路径。

TARGET_LINK_LIBRARIES(target library1 <debug | optimized> 
							 library2 ...
					 )

target:被链接的对象library:库名称

实例

此处采用之前生成安装好的库文件libhello.so进行演示。

新建工程空间

首先,新建工程文件并定义工程CMakeLists.txt文件。

# 新建工程空间t4
mkdir -p ~/cmake_test/t4
cd ~/cmake_test/t4
# 新建子目录src
mkdir src
# 新建工程CMakeLists.txt
vim 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
#include <iOStream>
using 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.somain进行链接,并将头文件加入搜索路径中。此外,也可以选择链接静态库libhello.a,只需将其修改为如下即可:

# 添加链接
TARGET_LINK_LIBRARIES(main libhello.a)

编译

在t4根目录中新建build子目录用于编译:

# 新建build子目录
cd ~/cmake_test/t4
mkdir build & cd build
# 构建
cmake ..
# 编译
make -j12

此时,将在build/src中生成可执行二进制文件main,运行该程序效果如下:

# 运行程序
cd ~/cmake_test/t4/build/src
bash main

# 程序输出:
Hello World

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容!        

--结束END--

本文标题: CMake编译中的库文件和头文件链接你了解吗

本文链接: https://www.lsjlt.com/news/138472.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • CMake编译中的库文件和头文件链接你了解吗
    目录外部库文件、头文件链接指令头文件搜索路径链接库文件实例新建工程空间定义src内容编译总结外部库文件、头文件链接 指令 头文件搜索路径 INCLUDE_DIRECTORIES([A...
    99+
    2022-11-13
  • CMake编译中的库文件和头文件链接是什么
    这篇文章主要介绍了CMake编译中的库文件和头文件链接是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇CMake编译中的库文件和头文件链接是什么文章都会有所收获,下面我们一起来看看吧。外部库文件、头文件链接...
    99+
    2023-06-29
  • Java和Laravel文件框架:你真的了解它们吗?
    Java和Laravel是两个流行的编程语言和框架,它们在文件框架方面有着不同的实现。在本文中,我们将深入探讨Java和Laravel文件框架的异同点,帮助你更好地了解它们。 Java文件框架 Java是一种广泛使用的编程语言,它具有跨平台...
    99+
    2023-08-26
    laravel 文件 框架
  • Apache和Java文件之间的实时交互,你了解吗?
    Apache和Java是两个广泛使用的技术,它们在不同的领域发挥着重要作用。在实际应用中,我们经常需要将这两个技术进行整合,以实现更强大的功能。本文将介绍如何实现Apache和Java文件之间的实时交互,并演示一些实用的代码。 一、Apa...
    99+
    2023-10-22
    文件 实时 apache
  • Python 分布式框架在文件处理中的应用,你了解吗?
    在现代大数据时代,数据量已经不再是一个局限。当我们需要进行大规模数据处理时,单机的计算资源已经无法满足我们的需求。这时候,分布式系统就成为了我们的选择。Python 作为一门高效的编程语言,也提供了很多分布式框架,比如 PySpark、D...
    99+
    2023-10-14
    分布式 框架 文件
  • 你知道 PHP 文件操作中数组的妙用吗?赶快来了解一下!
    PHP 文件操作中数组的妙用 在 PHP 文件操作中,数组是一个非常强大且常用的数据类型。数组可以存储一系列相关的数据,这些数据可以是字符串、整数或者其他类型的值。在文件操作中,数组的使用可以帮助我们更加方便地进行文件的读取和写入操作。本文...
    99+
    2023-09-01
    文件 数组 实时
  • ASP面试中的文件处理和数据类型问题:你准备好了吗?
    在ASP面试中,文件处理和数据类型是两个常见的问题,因为这些问题涉及到ASP应用程序的核心功能。在本文中,我们将重点介绍文件处理和数据类型问题,并提供一些示例代码,帮助你更好地准备ASP面试。 一、文件处理问题 如何读取和写入文件? ...
    99+
    2023-08-30
    面试 文件 数据类型
  • 如何解决配置文件中的数据库连接串加密了问题
    这篇文章主要介绍“如何解决配置文件中的数据库连接串加密了问题”,在日常操作中,相信很多人在如何解决配置文件中的数据库连接串加密了问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解...
    99+
    2022-10-18
  • 文件处理是 PHP 和 Apache 的重要部分,你了解吗?我们来一起学习教程!
    在 Web 应用程序中,文件处理是一项非常重要的任务。无论是上传文件、下载文件、读取文件还是写入文件,这些操作都需要对文件进行处理。而 PHP 和 Apache 作为 Web 开发中最常用的语言和服务器,提供了丰富的文件处理功能。本文将为...
    99+
    2023-10-01
    apache 文件 教程
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作