cmake模板
2024-09-01 16:26:28
1.主要命令
- project (TEST):指定项目名称为TEST
- aux_source_directory(<dir> <variable>):将当前目录中的源文件名称赋值给变量 DIR_SRCS
- include_directories:指定头文件的搜索路径,相当于指定gcc的-I参数
- link_directories:动态链接库或静态链接库的搜索路径,相当于gcc的-L参数
- add_executable:编译可执行程序
- target_link_libraries:添加链接库,相同于指定-l参数
2.模板
我们以调用superlu为例进行说明,首先在当前测试目录下建立四个文件夹:include,src,lib,build。其中include放superlu所依赖的.h文件,src放自己编写的文件,lib放superlu的库文件,build目前是一个空文件夹,文件夹结构如下图所示:
将以下内容考入文件CMakeList.txt中,
cmake_minimum_required (VERSION 2.6)
project (TEST)
set (TEST_VERSION 0.1)
set(CMAKE_BUILD_TYPE "Debug")
set(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb -DDEBUG")
set(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/../bin)
aux_source_directory(${PROJECT_SOURCE_DIR}/src DIR_SRC)
include_directories(${PROJECT_SOURCE_DIR}/src)
include_directories(${PROJECT_SOURCE_DIR}/include)
link_directories(${PROJECT_SOURCE_DIR}/lib)
add_executable(main ${DIR_SRC})
target_link_libraries(main libsuperlu.a)
target_link_libraries(main libblas.a)
然后进入目录build下,执行
cmake ..
make
执行文件便会自动创建在目录bin下面,下图为执行完后的结构
最新文章
- smartcrop.js智能图片裁剪库
- WInform关闭程序的几种方法以及区别。
- PHP面试试题
- python os.system()返回值判断
- ASP.NET几种页面数据绑定的用法及区别: <;%#、 <;%=、 <;% 、<;%@
- iOS开发--通过MultipeerConnectivity完成蓝牙通讯
- 在C语言中使用scanf语句时遇到的问题总结
- 约瑟夫问题(Josephus Problem)的两种快速递归算法
- Oracle单个数据文件超过32G后扩容
- Nginx阅读笔记
- Android MediaCodec硬编兼容性测试方案
- C#多线程编程(1)--线程,线程池和Task
- Flask学习 三 web表单
- C# ListBox实现显示插入最新的数据的方法
- OO第二次作业总结
- 第二次作业:分布式版本控制系统Git的安装与使用
- Angular2 NgModule 模块详解
- SpringBoot2中配置文件的调整,升级SpringBoot2时候注意的坑
- 1. 决策树(Decision Tree)-决策树原理
- vi中全选的命令或者快捷方式