• 做一个幸福的人,读书,旅行,努力工作,关心身体和心情。
  • 不管有没有人爱,也要努力做一个可爱的人。不埋怨谁,不嘲笑谁,也不羡慕谁,阳光下灿烂,风雨中奔跑,做自己的梦,走自己的路。

CMake笔记

工具 lcq 9个月前 (01-30) 295次浏览 0个评论

CMAKE 中平台判断

xxx_directories 和 target_xxx_directories 区别

这类命令如: 
include_directories/target_include_directories 
link_directories/ target_link_libraries

主要区别在于:

  • xxx_directories 将作用于整个工程,target_xxx_directories 将作用于target 的项目
  • target目标文件必须已经存在(由命令add_executable()或add_library()所创建),并且不能被IMPORTED修饰
  • 若使用BEFORE,则它修饰的内容会被添加到属性前面。
  • 关键字INTERFACE,PUBLIC和PRIVATE指定它后面参数的作用域。PRIVATE和PUBLIC项会填充targe目标文件的INCLUDE_DIRECTORIES属性。
  • PUBLIC和INTERFACE项会填充target目标文件的INTERFACE_INCLUDE_DIRECTORIES属性。随后的参数指定包含目录。

找不到 -lgtest_main

有时候明明设置了link_directories(${CMAKE_SOURCE_DIR}/gtest)然后再查找库target_link_libraries(${NAME}_parser gtest) 的时候会报这个问题。主要原因是add_executable(${NAME}_parser ${CMAKE_SOURCE_DIR}/src/main.cpp)必须放在link_directories(${CMAKE_SOURCE_DIR}/gtest)的后面。


乐趣公园 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明CMake笔记
喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址