CMake - 可执行文件 - 动态链接库 - libcurl
来源:互联网 发布:制作卡片的软件 编辑:程序博客网 时间:2024/05/01 02:21
假设有一个TestHttpClient Solution,这个Solution下分别有TestHttpClient工程(可执行程序)和HttpClient工程(动态库)。
这样我们需要三个CMakeLists.txt文件。其中HttpClient还依赖了libcurl第三方库。
下面分别是不同目录下的CMakeLists.txt文件清单
Solution目录
PROJECT(TestHttpClient)CMAKE_MINIMUM_REQUIRED(VERSION 2.8)#要显示执行构建过程中详细的信息(比如为了得到更详细的出错信息)SET( CMAKE_VERBOSE_MAKEFILE ON )#添加子目录ADD_SUBDIRECTORY(HttpClient)ADD_SUBDIRECTORY(TestHttpClient)
HttpClient目录
MESSAGE(STATUS "This is TestHttpClient_SOURCE_DIR="${TestHttpClient_SOURCE_DIR})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.soADD_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目录
#把编译出来的可执行文件输出到项目的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中定义) #编译出一个可执行文件且命名为TestHttpClientADD_EXECUTABLE(TestHttpClient ${APP_SRC})#添加编译可执行程序所需要的链接库、如果有多个中间用空格隔开#第一个参数是可执行程序名称,第二个开始是依赖库#在这里根据名字XXX去寻找libXXX.a文件TARGET_LINK_LIBRARIES(TestHttpClient HttpClient)
0 0
- CMake - 可执行文件 - 动态链接库 - libcurl
- cmake 链接动态链接库
- CMake 构建动态链接库
- cmake之链接外部动态库
- cmake编译opencv链接动态库
- GNU Compile Tools, 可执行文件, 静态链接库, 动态链接库
- GNU Compile Tools, 可执行文件, 静态链接库, 动态链接库
- GNU Compile Tools, 可执行文件, 静态链接库, 动态链接库
- GNU Compile :可执行文件, 静态链接库, 动态链接库
- 链接libcurl静态库
- linux 查看可执行文件动态链接库相关信息
- linux 查看可执行文件动态链接库相关信息
- linux 查看可执行文件动态链接库相关信息
- QT5程序发布--打包可执行文件和动态链接库
- Linux ldd -- 查看可执行文件所依赖的动态链接库
- linux 查看可执行文件动态链接库的相关信息
- linux 查看可执行文件动态链接库相关信息(转)
- 使用cmake生成基于静态库的动态链接库
- test
- Java线程面试题Top50
- 是armhf,还是armel?
- QT中的信号-槽函数与多线程
- Android 设计模式之单例模式
- CMake - 可执行文件 - 动态链接库 - libcurl
- 程序崩溃原因总结
- UIScrollView属性总结
- 服务器正式环境性能测试nginx-php 求指点性能提升突破口
- mac_Mac环境下如何编写HTML代码?
- Oracle SQL的硬解析和软解析
- Nodejs 文件上传
- 文档格式化研究一
- UVA 10526 - Intellectual Property (后缀数组)