续文章 CMake入门实践之语法(1)
8. 变量 EXECUTABLE_OUTPUT_PATH, LIBRARY_OUTPUT_PATH
EXECUTABLE_OUTPUT_PATH 为生成可执行文件路径, LIBRARY_OUTPUT_PATH为生成库文件路径。我们可以通过 SET 指令对其进行设置最终目标二进制的位置,即最终生成的工程可执行文件与最终的共享库,而不会包含生成的中间文件。
命令如下:
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib)
9. LINK_DIRECTORIES
格式:
LINK_DIRECTORIES(directory1 directory2 ...)
# 该指令用于添加外部库的搜索路径
10. TARGET_LINK_LIBARRIES
格式:
TARGET_LINK_LIBRARIES(target library1 <debug | optimized> library2 ..)
# target:目标文件
# library1, ... , library N :链接外部库文件
# 指定链接目标文件时需要 链接的外部库,效果类似 gcc 编译参数 -L ,解决外部库依赖的问题。
11. MESSAGE
向终端输出用户定义的信息和变量值,格式:
MESSAGE([SEND_ERROR | STATUS | FATAL_ERROR] “message to display” …)
# SEND_ERROR : 产生错误,生成过程被跳过
# STATUS : 输出前缀为 - 的信息
# FATAL_ERROR : 立即终止所有 cmake 过程
12. SET_TARGET_PROPERTIES
设置目标的某些属性,改变它们的构建方式。格式:
SET_TARGET_PROPERTIES(target1 target2 ...
PROPERTIES prop1 value1 prop2 value2 ...)
该指令为一个目标设置属性,语法是列出所有用户想要变更的文件,然后提供想要设置的值。用户可以使用任何想用的属性与对应的值,并在随后的代码中调用 GET_TARGET_PROPERTY 命令取出属性的值。
影响目标输出文件按的属性 PROPERTY 详述如下:
-- PREFIX, SUFFIX :PREFIX 覆盖了默认的目标名前缀(如lib); SUFFIX 覆盖了默认的目标名后缀(如 .so)。
-- IMPORT_PREFIX,IMPORT_SUFFIX:与 PREFIX, SUFFIX是等价的属性,但针对的是 DL