首页
学习
活动
专区
工具
TVP
发布

cmake

作者头像
sofu456
发布2019-08-14 16:48:32
1.2K0
发布2019-08-14 16:48:32
举报
文章被收录于专栏:sofu456sofu456

cmake

  • 变量定义 name=… set(name, “…”)
  • 环境检测 find_library(lib libname pathllist) find_package(packename) find_path(var name pathlist) find_program(var name pathlist)
  • 子目录 add_subdirectory(list)
  • 可执行文件 add_executable(binname ${sources}) target_link_libraries(binname librarylist)
  • 动态库 add_library(libname shared ${source} )
  • 静态库 add_library(libname static ${source} )
  • 头文件 include_directories(list)
  • 源码搜索 aux_source_directories(. list)
  • 依赖库 target_link_libraries(binname librarylist)
  • 安装设置 install(TARGETS targets… [[ARCHIVE|LIBRARY|RUNTIME][DESTINATION < dir >][PERMISSIONS permissions…] [CONFIGURATIONS[Debug|Release|…]] [COMPONENT < component >][OPTIONAL]] […])
  • 其他文件 install(FILES files… ) install(DIRECTORY dirs…)
  • 条件语句 if(my) else(my) endif(my) while(condition) endwhile(condition)
  • 执行外部命令 exec_program(commd )
  • 子模块 include()
  • 信息输出 messge(STATUS “messge”)
  • 项目 project(name)

例如:添加三方库 include_directiories(/usr/include/curl) target_link_libraries(myprogram path/curl.so) 使用find_package的方式 find_package(CURL REQUIRED) //通过FindCURL.cmake查找 include_directories(${CURL_INCLUDE_DIR}) target_link_libraries(curltest ${CURL_LIBRARY}) 构建过程中生成,模块.dir和每个模块的编译文件

关联多个cmake项目使用add_subdirectory,

  • 子项目去掉add_subdirectory,否则出现target exsit错误
  • 子项目去掉project项目名称,避免cmake中重复(不报错)

demo

include_directories("/usr/include/openni2/")
link_directories("/usr/lib/")
add_executable (pcdview pcdview.cpp)
target_link_libraries (pcdview ${PCL_LIBRARIES} "libopencv_core.so" "libopencv_imgcodecs.so")

ninja

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年08月12日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • cmake
  • demo
  • ninja
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档