CMakeLists.txt入门

总述:

CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake 。
从入门的角度,进行最基础的cmake学习和整理

学习

示例

# ## 整体编译
# cmake_minimum_required(VERSION 2.8.0)

# project(hhhhh)

# set( CMAKE_BUILD_TYPE "Debug")

# include_directories(include)

# #AUX_SOURCE_DIRECTORY(src DIR_SRCS)

# # add_executable(main ${DIR_SRCS})
# add_executable(main src/main.cpp src/testmath.cpp)
# #TARGET_LINK_LIBRARIES(main m)



## 先编译库文件,再编译
cmake_minimum_required(VERSION 2.8.0)

project(cmaketest)

set( CMAKE_BUILD_TYPE "Debug")

include_directories(include)
add_library(testmath src/testmath.cpp)

add_executable(main src/main.cpp)
target_link_libraries(main testmath)

# cool bingo

tips:

1、link_directories 添加链接库的相对路径和绝对路径问题
link_directories(${CMAKE_CURRENT_SOURCE_DIR}/vlfeat/lib)

CMake 2.8.0 以下的版本,加载动态链接库link_directories()时使用相对路径,链接时也使用相对路径;
CMake 2.8.1 及以上版本加载动态链接库link_directories()时使CMAKE_CURRENT_SOURCE_DIR修饰对路径,链接时先转换成绝对路径再进行链接。

可能的报错:

Policy CMP0015 is not set: link_directories() treats paths relative to the source dir.
2、变量的设置set()
#设置变量
set(var "a")
#引用变量${var}
message(${var})
#if 中的引用不用加${}
if var

实例:

set(vlfeat_DIR "/home/tonglu/pkg/vlfeat/vlfeat-0.9.21-bin/vlfeat-0.9.21/")#bash: $VLROOT
#message(${vlfeat_DIR})
参考:

非常好:https://blog.csdn.net/u014162133/article/details/104039573

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值