CMAKER
来源:互联网 发布:对戒 知乎 编辑:程序博客网 时间:2024/05/22 08:08
CMAKE 的一些命令
http://www.cnblogs.com/coderfenghc/archive/2012/10/20/2712806.html
假设有一个TestHttpClientSolution,这个Solution下分别有TestHttpClient工程(可执行程序)和HttpClient工程(动态库)。
这样我们需要三个CMakeLists.txt文件。其中HttpClient还依赖了libcurl第三方库。
下面分别是不同目录下的CMakeLists.txt文件清单
Solution目录
[html] view plain copy
- PROJECT(TestHttpClient)
-
- CMAKE_MINIMUM_REQUIRED(VERSION
2.8) -
- #要显示执行构建过程中详细的信息(比如为了得到更详细的出错信息)
- SET(
CMAKE_VERBOSE_MAKEFILE ON ) -
- #添加子目录
- ADD_SUBDIRECTORY(HttpClient)
- ADD_SUBDIRECTORY(TestHttpClient)
HttpClient目录
[html] view plain copy
- MESSAGE(STATUS
"This TestHttpClient_SOURCE_DIR="${TestHttpClient_SOURCE_DIR})is - MESSAGE(STATUS
"This is CMAKE_SOURCE_DIR="${CMAKE_SOURCE_DIR}) - #添加头文件搜索路径
- INCLUDE_DIRECTORIES(${TestHttpClient_SOURCE_DIR}/HttpClient)
-
- #用于将当前目录下的所有源文件的名字保存在变量
LIB1_SRCS 中 - AUX_SOURCE_DIRECTORY(.
LIB_SRC) -
- #把编译出来的库文件输出到项目的lib目录下
- #例如运行“cmake
..”的目录为build,则在build/lib目录下生成 - SET(LIBRARY_OUTPUT_PATH
${PROJECT_BINARY_DIR}/lib) -
- #output
library name is libHttpClient.so - ADD_LIBRARY(HttpClient
SHARED ${LIB_SRC}) -
- #查找libcurl依赖,如果没有找到则终止cmake继续运行,否则链接目标文件。
- #输出FATAL_ERROR级别信息,会终止cmake。
- #在CentOS6.5下使用“sudo
yum install curl-devel”命令安装curl-dev依赖包即可 - FIND_PACKAGE(CURL)
- IF(CURL_FOUND)
-
INCLUDE_DIRECTORIES(${CURL_INCLUDE_DIR}) -
TARGET_LINK_LIBRARIES(HttpClient ${CURL_LIBRARY}) - ELSE(CURL_FOUND)
-
MESSAGE(FATAL_ERROR "CURL library not found") - ENDIF(CURL_FOUND)
TestHttpClient目录
[html] view plain copy
- #把编译出来的可执行文件输出到项目的bin目录下
- #例如运行“cmake
..”的目录为build,则在build/bin目录下生成 - SET(EXECUTABLE_OUTPUT_PATH
${PROJECT_BINARY_DIR}/bin) -
- #CMake运行时,打印路径
- MESSAGE(${PROJECT_SOURCE_DIR}/HttpClient)
-
- #添加库文件搜索路径
- LINK_DIRECTORIES(${PROJECT_BINARY_DIR}/lib)
-
- #用于将当前目录下的所有源文件的名字保存在变量
APP_SRCS 中 - AUX_SOURCE_DIRECTORY(.
APP_SRC) -
- #如果调用"CMake
-D DEBUG_MODE=ON .." - #则为源文件设置_DEBUG宏
- IF(DEBUG_MODE)
-
ADD_DEFINITIONS(-D_DEBUG) - ENDIF()
-
- #用于指定从一组源文件
source1 source2 … sourceN(在变量APP_SRCS中定义) - #编译出一个可执行文件且命名为TestHttpClient
- ADD_EXECUTABLE(TestHttpClient
${APP_SRC}) -
- #添加编译可执行程序所需要的链接库、如果有多个中间用空格隔开
- #第一个参数是可执行程序名称,第二个开始是依赖库
- #在这里根据名字XXX去寻找libXXX.a文件
- TARGET_LINK_LIBRARIES(TestHttpClient
HttpClient)
0 0
- CMAKER
- Cmaker 是什么
- 痛苦的Caffe配置之路(win10 教育版+vs2015+cmaker+cpu_only+python接口)
- 初始化2维数组
- mmc子系统
- j2se 下拉框变化字体
- git pull冲突
- 17章 QQ用户信息管理系统 1-2
- CMAKER
- eclipse中tomcat服务器后启动时间限制的问题
- SD读写
- 自动创建设备节点 ,手动创建…
- 今天要比昨天跑的更快一点
- struct device dev;&nbs…
- SD卡寄存器
- Mac MyEclipse 2016 stable 1.0 配置lombok
- 待遇与能力(上海,转)