首页 > 其他分享 >【album】编译工程

【album】编译工程

时间:2024-03-18 20:57:53浏览次数:17  
标签:album ... CMake 函数 工程 name 编译 用于 target

记录帖。

CMake

以下都是 CMake 函数,用于配置项目的构建系统,说明如下:

find_package(package_name):此函数用于查找现有的包配置模块或预定义模块。它查找指定库的安装位置,并设置相关变量。包配置模块是库的安装过程中创建的,用于帮助库的用户找到和链接库。预定义模块是 CMake 分发中提供的,用于处理常见库的查找和导入。

link_directories(directory):此函数用于将目录添加到链接器的库文件搜索路径(Library Paths)。在链接过程中,链接器需要在这些路径中找到库文件(如 .lib 或 .a),并将它们与目标可执行文件或库一起链接。link_directories() 函数允许您指定链接器搜索库文件的目录。

include_directories(directory):此函数用于将指定的目录添加到编译器头文件搜索路径(Include Paths)。编译器在编译过程中需要找到被源代码引用的头文件。include_directories() 函数允许您指定编译器搜索头文件的目录。

set_target_properties(target_name PROPERTIES prop1 value1 prop2 value2 ...):此函数用于设置构建目标的属性。您可以通过此函数修改目标的名称、位置、输出后缀等。target_name 参数指定要设置属性的目标名称。PROPERTIES 关键字表示您将提供属性名称和值。prop1 value1 prop2 value2 ... 是属性名称和值的成对列表。

target_link_libraries(target lib1 lib2 ...):此函数用于链接库到特定的目标文件。例如,如果您有一个可执行文件(如 executable_target),需要链接到 lib1 和 lib2,则可以使用 target_link_libraries(executable_target lib1 lib2)。

pybind11_add_module(target_name source1 source2 ...):此函数由 Pybind11 提供,用于创建 Python 扩展模块。函数接收一个目标名称,将使用给定的源文件(source1、source2 等)为此目标创建一个共享库。在输出时,它还可以自动添加适当的后缀(例如,在 Windows 上为 .pyd)。

add_library(target_name [SHARED | STATIC] source1 source2 ...):此函数用于定义一个库目标,它将由给定的源文件构建。第一个参数 target_name 是库目标名称。SHARED 选项表示要构建动态库(例如,.dll 文件),STATIC 表示要构建静态库(例如,.lib 文件)。source1、source2 等参数是库的源文件列表。

set(var_name val1 val2 ...):此函数用于设置 CMake 变量。var_name 是要设置的变量名称,val1、val2 等是要分配给变量的值。变量可作为路径、列表、编译选项等信息存储在 CMake 脚本中,用于后续引用。

标签:album,...,CMake,函数,工程,name,编译,用于,target
From: https://www.cnblogs.com/ytxwzqin/p/18081372

相关文章

  • 软件工程-论文查重
    第一次个人编程作业这个作业属于哪个课程<软件工程2024-双学位>这个作业要求在哪里<软件工程第一次个人编程作业>这个作业的目标完成编码任务PSP表格PSP2.1PersenonalSoftwareProcessStages预计耗时(分钟)实际耗时(分钟)Planning计划3030Esti......
  • 测试工程师简历中【个人技能】如何写
    测试工程师属于技术岗位。在简历投递中,HR和面试官筛选简历的时候,对【个人技能】这一栏会相对比较关注。应聘者如果能在【个人技能】中描述得当,会大幅提升简历通过筛选的概率。常见错误很多工程师由于经验不足,在填写【个人技能】时,容易犯一些错误,平白浪费了可以展示自己的机......
  • dea设置自动编译spring boot代码,idea代码修改后无须重启服务立即生效
    解决办法1:spring-boot-devtools<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><......
  • 2024年智能通信、大数据与软件工程国际会议(ICICBDSE 2024)
    2024年智能通信、大数据与软件工程国际会议(ICICBDSE2024)2024InternationalConferenceonIntelligentCommunication,BigDataandSoftwareEngineering会议简介:在大数据时代背景下,计算机软件技术的开发情况值得关注。特别是在进行通信和传输的过程中,信息通信系统是最......
  • 【QT+QGIS跨平台编译】之八十二:【QGIS_Gui跨平台编译】—【错误处理:QgsExpressionCont
    文章目录一、未定义基类QgsExpressionContextGenerator二、错误处理一、未定义基类QgsExpressionContextGenerator报错信息二、错误处理第33行增加:#include"qgsexpressioncontextgenerator.h"......
  • 编译器有关的Makefile语法
    在Makefile中,与编译器相关的语法通常用于定义编译规则和链接规则,以及设置编译器选项等。编译器相关的Makefile语法定义变量CFLAGS=-Wall-O2编译规则%.o:%.c$(CC)$(CFLAGS)-c$<-o$@链接规则program:file1.ofile2.o$(CC)$^-o$@......
  • linux上编译release并剥离调试信息
    使用objcopy:1转载出处:https://unpluggedcoder.me/2014/04/24/%E7%94%9F%E6%88%90%E5%8F%AF%E8%B0%83%E8%AF%95%E7%9A%84Release%E7%89%88%E6%9C%AC%E4%BA%8C%E8%BF%9B%E5%88%B6%E6%96%87%E4%BB%B6--%E8%B0%83%E8%AF%95%E7%AC%A6%E5%8F%B7%E4%BF%A1%E6%81%AF%E6%8F%90%E5%8F%96......
  • baremetal bsp工程管理
    参考学习:https://www.bilibili.com/video/BV1yE411h7uQ?p=20&vd_source=432ba293ecfc949a4174ab91ccc526d6 便于bsp工程管理,将工程进行分类管理,如下图Makefile编译脚本文件bsp文件夹存所写的bsp驱动imx6ul文件夹存放imx6ull官方sdk文件imx6ul.lds是链接脚本obj文件夹存在......
  • 今日头条Linux 运维工程师面试真题
    今日头条Linux运维工程师面试真题首先我们来看下今日头条Linux运维工程师招聘岗位要求:【岗位定义】系统运维工程师【岗位薪资】10K-24K【基本要求】北京/经验3-5年/本科及以上/全职【职位描述】1、负责业务系统日常运行维护,线上故障紧急处理;2、监控平台的搭建......
  • Linux 运维工程师面试真题-2-Linux 命令及文件操作
    Linux运维工程师面试真题-2-Linux命令及文件操作1.在/tmp/目录下创建test.txt文件,内容为:Hello,World!,用一个命令写出来。2.给test.txt文件除所有者之外增加执行权限,最终以数字写出文件的权限。3.用vi命令编辑test.txt,如何跳转到末行,首行,行首、行末,如何在光标行下一......