编写CMakeLists.txt
程序员文章站
2024-02-19 18:45:52
...
1.cmake verson,指定cmake版本
cmake_minimum_required(VERSION 3.2)
2.project name,指定项目的名称,一般和项目的文件夹名称对应
PROJECT(server_project)
3. MESSAGE(STATUS "Project: SERVER") #打印相关消息消息
4.set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") 指定编译类型
4.include_directiories
比如说,我们需要一个第三方库 curl,那么我们的 CMakeLists.txt 需要指定头文件目录,和库文件,类似:
include_directiories(/usr/include/curl)
target_link_libraries(myprogram path/curl.so)
如果借助于cmake提供的finder:
find_package(CURL REQUIRED)
include_directories(${CURL_INCLUDE_DIR})
target_link_libraries(curltest ${CURL_LIBRARY})
5.LINK_DIRECTORIES(添加需要链接的库文件目录)
link_directories(directory1 directory2 ...)
6.LINK_LIBRARIES (添加需要链接的库文件路径,注意这里是全路径)
LINK_LIBRARIES("/opt/MATLAB/R2012a/bin/glnxa64/libeng.so" "/opt/MATLAB/R2012a/bin/glnxa64/libmx.so")
7.add_library
将指定的源文件生成链接文件,然后添加到工程中去
file(GLOB trtSrc src/trt/*.cu src/trt/*.cpp)
add_library(libtrt ${trtSrc} )
8.target_link_libraries
该指令的作用为将目标文件与库文件进行链接。该指令的语法如下:
target_link_libraries(<target> [item1] [item2] [...]
[[debug|optimized|general] <item>] ...)
上述指令中的<target>是指通过add_executable()和add_library()指令生成已经创建的目标文件。而[item]表示库文件没有后缀的名字。默认情况下,库依赖项是传递的。当这个目标链接到另一个目标时,链接到这个目标的库也会出现在另一个目标的连接线上。这个传递的接口存储在interface_link_libraries的目标属性中,可以通过设置该属性直接重写传递接口。
9.add_executable 编译可执行文件
add_executable(compute_pnp compute.cpp)
上一篇: 构架服务器有关问题
下一篇: MUI获取窗口链接地址