一个简单标准的CMakeLists.txt文件

本文详细介绍了一个完整的CMakeLists.txt文件配置流程,包括设置CMake版本、项目名称、编译类型、C++11标准支持、输出目录、库文件添加、头文件路径指定及链接库设置等内容,并给出了如何引入第三方库如OpenCV的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

cmake_minimum_required( VERSION 2.8 )#cmake版本最低要求
project(KMeans)#项目名称

IF(NOT CMAKE_BUILD_TYPE)#(可选)如果没有指定cmake编译模式,就选择Release模式,必须写成三行
SET(CMAKE_BUILD_TYPE Release)
ENDIF()

set( CMAKE_CXX_FLAGS "-std=c++11" )# 添加c++ 11标准支持
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/lib)##设置生成的so动态库最后输出的路径
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR})#将产生的target文件输出到指定路径

add_library(${PROJECT_NAME} SHARED k-means.cpp)##将指定的源文件生成链接文件,然后添加到工程中去

include_directories(${PROJECT_SOURCE_DIR} )#添加头文件目录,相当于指定gcc的-I参数

link_directories($(DIR)/lib) #动态链接库或静态链接库的搜索路径,相当于gcc的-L参数


add_executable(main  main.cpp)#生成可执行文件
target_link_libraries(main ${PROJECT_NAME})#将目标文件与库文件进行链接,添加链接库,相同于指定-l参数

如果添加OpenCV,OpenNI,PCL等库刚需要添加以下
set(OpenCV_DIR "/home/xx/release")#指定使用哪种版本的OpenCV,必须在project前,release是openCV编译的文件夹

LIST(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake_modules)#自己的cmake模块所在的路径,或者include( cmake 模块的绝对路径+名称)
find_package(<name1>)#find_package(<Name>)命令首先会在模块路径中寻找 Find<name>.cmake
find_package (<name2>)
...
include_directories(<name_INCLUDE_DIRS>)##添加相关库的头文件路径

target_link_libraries(${PROJECT_NAME} $(name1_LIBS) ...)  #将目标文件与库文件进行链接


OK,这样一个完整的CMakeLists.txt就完成了,可以开始自己的编译了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值