object library
add_library(<name> OBJECT <src>...)
库的类型固定为OBJECT,这种库编译了源文件,但不链接。实际中没用过,没有仔细研究。add_library(tfhe-core OBJECT ${SRCS} ${TFHE_HEADERS})
include_directories([AFTER|BEFORE] [SYSTEM] dir1 [dir2 ...])
将指定目录添加到编译器的头文件搜索路径之下,指定的目录被解释成当前源码路径的相对路径。include_directories("include")
使用file来把要添加的头文件找到,比如,我在includeTest工程的文件夹里面新建了testheader.h文件,这么写
file(GLOB ALLHEADERS ${CMAKE_CURRENT_SOURCE_DIR}/*.h)这样就把当前工程文件夹里面所有的 .h 文件都放到了 ALLHEADERS 当中
file(GLOB TFHE_HEADERS include/*.h)
set_property() 命令
在给定范围内设置一个对象的属性。
命令格式:
set_property(<GLOBAL | DIRECTORY [<dir>] | TARGET [<target1> ...] | SOURCE [<src1> ...] [DIRECTORY <dirs> ...] [TARGET_DIRECTORY <targets> ...] | INSTALL [<file1> ...] | TEST [<test1> ...] | CACHE [<entry1> ...] > [APPEND] [APPEND_STRING] PROPERTY <name> [<value1> ...]) # 其基本格式为: set_property(<Scope> [APPEND] [APPEND_STRING] PROPERTY <name> [value...])第一个参数必须是属性的范围(Scope),后面 [APPEND | APPEND_STRING] 可选,表示属性是可扩展的列表。PROPERTY 是标识,后面接属性名称<name>,其值可选。
get_property() 命令
获取属性的值。
get_property(<variable> <GLOBAL | DIRECTORY [<dir>] | TARGET <target> | SOURCE <source> [DIRECTORY <dir> | TARGET_DIRECTORY <target>] | INSTALL <file> | TEST <test> | CACHE <entry> | VARIABLE > PROPERTY <name> [SET | DEFINED | BRIEF_DOCS | FULL_DOCS])<variable> : 保存属性值的变量
GLOBAL/DIRECTORY ... /VARIABLE : 表示属性对应的范围,与 set_property() 相同,额外的 VARIABLE 表示范围是唯一的,不接受名称。
PROPERTY <name> : 属性名,同 set_property()
SET | DEFINED | BRIEF_DOCS | FULL_DOCS : 可选参数
- SET : 将变量设置为布尔值,指示是否已设置属性;
- DEFINED : 将变量设置为布尔值,指示属性是否已被定义
- BRIEF_DOCS | FULL_DOCS : 如果给定了 Brief_DOCS 或 FULL_DOCS,则将变量设置为包含所请求属性的文档的字符串。
版权声明:本文为优快云博主「翔底」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/rangfei/article/details/126051723set_property(TARFET tfhe-core PROPERTY POSITION_INDEPENDENT_CODE ON)
使用的是tfhe-core
set(POSITION_INDEPENDENT_CODE True)position-independent code (PIC) 编译动态库
.so
position-independent code (PIC):用于生成位置无关代码。位置无关代码,可以理解为代码无绝对跳转,跳转都为相对跳转。
TARGET_LINK_LIBRARIES (设置要链接的库文件的名称)
参考文章:
CMake添加头文件_無負今日的博客-优快云博客_cmake 添加头文件
Cmake命令之include_directories介绍_物随心转的博客-优快云博客_cmake include_directories
cmake(14):利用set_property命令设置全局属性_翔底的博客-优快云博客_cmake 全局变量
本文介绍了CMake在构建库和设置编译选项方面的用法,包括add_library创建OBJECT库、include_directories添加头文件路径、file进行文件搜索、set_property设置目标属性以及POSITION_INDEPENDENT_CODE用于生成位置无关代码,适用于动态库的编译。通过实例展示了如何使用这些命令来优化CMake构建过程。
5302

被折叠的 条评论
为什么被折叠?



