cmake使用方法

# cmake可以简化c++的编译过程,在cmake中可以定义include的lib路径等。cmake通过编写一个CMakeLists.txt文件来对程序进行定义。cmake不区分字符大小写。

# 使用cmake执行c++函数时过程:

1. 编写CMakeLists.txt文件

# 假设我们文件下有如下文件:

# 其中CMakeLists.txt:

cmake_minimum_required(VERSION 3.5 FATAL_ERROR)

project(add)

# to include a lib path you can:
# one:
# include_directories(BEFORE ${PROJECT_SOURCE_DIR}/src/)
# two:
# include_directories(/home/name/project/src)
# three:
set(include_path ${PROJECT_SOURCE_DIR}/src/)
include_directories(${include_path})

add_executable(add add.cpp)

# 这里设置了包含的库的路径,这样文件就可以直接引用src下面的库了

# add_executable 添加了可执行文件,即会生成add可执行文件。

# 所有代码在https://github.com/duanyzhi/cmake

2. mkdir build

3. cd build

4. cmake ..

5. make   # 生成可执行文件

6. ./main   # 执行生成的可执行文件

(重新编译之前养成先把build文件夹删除的习惯)

# 当然也可以写一个sh文件一下执行上诉过程。

# 其他CMakeLists.txt语句

如果想使用-std=c++11编译需要添加下面一句即可:

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

g++编译选项

-g          # 编译debug
-S          # 生成汇编文件
-std=c++11  # 编译c++11程序
-O0         # 编译时不优化程序
-Wall       # 编译时显示所有警告

# 去掉编译出来的binary文件自带的rapth,rpath优先级大于LD_LIBRARY_PATH

SET(CMAKE_EXE_LINKER_FLAGS"-Wl,-enable-new-dtags") 

cmake编译target顺序

按照subdir的顺序。如果subdir里依赖了其他target,则依次编译。

cmake常用命令及解析

project(novamind)
find_package(PythonLibs 3.7 REQUIRED)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值