link_directories和include_directories区别
时间: 2023-12-29 11:59:34 浏览: 24
link_directories 用于指定链接库时的库搜索路径,而 include_directories 则是用于指定头文件搜索路径。也就是说,link_directories 是用于指定链接库时需要用到的库文件所在路径,而 include_directories 则是指定包含头文件时需要用到的头文件所在路径。
相关问题
include_directories link_directories add_definitions
在CMake中,include_directories命令用于向项目中添加包含目录,以便编译器能够找到头文件。其格式如下:include_directories(\[AFTER|BEFORE\] \[SYSTEM\] directory1 \[directory2 ...\])。\[2\]
link_directories命令用于添加目录,以便链接器能够在其中查找库文件。其格式如下:link_directories(\[AFTER|BEFORE\] directory1 \[directory2 ...\])。\[1\]
add_definitions命令用于向项目中添加预处理器定义。其格式如下:add_definitions(-DDEFINE_NAME)。\[3\]
总结起来,include_directories用于添加包含目录,link_directories用于添加链接目录,add_definitions用于添加预处理器定义。
#### 引用[.reference_title]
- *1* *3* [CMake中link_directories/target_link_directories的使用](https://blog.csdn.net/fengbingchun/article/details/128292359)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [CMake中target_include_directories的使用](https://blog.csdn.net/fengbingchun/article/details/128292218)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
target_link_directories
target_link_directories命令用于将链接目录添加到CMake中的目标(target)。其格式如下:target_link_directories(<target> [BEFORE] <INTERFACE|PUBLIC|PRIVATE> [items1...] [<INTERFACE|PUBLIC|PRIVATE> [items2...] ...])。
与之相似的是CMake中的link_directories命令,它用于添加目录,使链接器能够在这些目录中查找库。其格式如下:link_directories([AFTER|BEFORE] directory1 [directory2 ...])。
值得一提的是,现代的CMake建议使用target_link_libraries和target_include_directories来管理外部依赖和源代码,而不是直接使用target_link_directories。例如,使用target_include_directories将库的头文件目录包含到目标中,然后使用target_link_libraries将库链接到目标中。
总之,target_link_directories是用于将链接目录添加到CMake中的目标的命令,而link_directories是用于添加目录使链接器能够在其中查找库的命令。在现代的CMake中,推荐使用target_link_libraries和target_include_directories来管理外部依赖和源代码。<span class="em">1</span><span class="em">2</span><span class="em">3</span>