cmake编译安装记录
2017-09-13 17:44
411 查看
1.类库生成
首先明确文件夹目录结构
t3/lib下的hello.c和hello.h用来生成库文件。
现在先来编写t3工程目录下的CMakeLists.txt文件:
添加子目录lib
然后编写lib下的CMakeLists.txt文件:
//hello.c
//hello.h
然后构建:
查看/usr/local/lib目录结构:
lib/
├── libhello.a
├── libhello.so -> libhello.so.1
├── libhello.so.1 -> libhello.so.1.2
└── libhello.so.1.2
说明已经正常生成。
然后准备部署测试程序进行测试。
2.测试项目生成
新建测试项目目录:
t3test/
修改根目录CMakeLists.txt
修改src中CMakeLists.txt
编写测试文件main.c
进入build中进行编译生成
进入build/src中会看到生成的main文件,执行,可以看到生成效果:
如果输出Hello World\n就是成功了!
首先明确文件夹目录结构
t3 ├── build ├── CMakeLists.txt └── lib ├── CMakeLists.txt ├── hello.c └── hello.h
t3/lib下的hello.c和hello.h用来生成库文件。
现在先来编写t3工程目录下的CMakeLists.txt文件:
CMAKE_MINIMUM_REQUIRED(VERSION 2.8) PROJECT(HELLOLIB) ADD_SUBDIRECTORY(lib)
添加子目录lib
然后编写lib下的CMakeLists.txt文件:
#如果是多文件,后面可以写成以空格分隔 SET(LIBHELLO_SRC hello.c) #添加动态库 ADD_LIBRARY(hello SHARED ${LIBHELLO_SRC}) #添加静态库 ADD_LIBRARY(hello_static STATIC ${LIBHELLO_SRC}) #生成动态库的版本号 SET_TARGET_PROPERTIES(hello PROPERTIES VERSION 1.2 SOVERSION 1) #将静态库重新命名为hello SET_TARGET_PROPERTIES(hello_static PROPERTIES OUTPUT_NAME "hello") #安装静态库和动态库 INSTALL(TARGETS hello hello_static LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) #安装hello.h ,打包会都包含在so文件中,所以不需要单独安装文件 #INSTALL(FILES hello.h DESTINATION include/hello)
//hello.c
#include "hello.h" void HelloFunc() { printf("Hello World\n"); }
//hello.h
#ifndef HELLO_H #define HELLO_H #include <stdio.h> void HelloFunc(); #endif
然后构建:
#用于指定到时候最终安装的目录,/usr/local/lib中内容,每次更新需要重新执行/sbin/ldconfig cd build cmake -DCMAKE_INSTALL_PREFIX=/usr/local make make install
查看/usr/local/lib目录结构:
lib/
├── libhello.a
├── libhello.so -> libhello.so.1
├── libhello.so.1 -> libhello.so.1.2
└── libhello.so.1.2
说明已经正常生成。
然后准备部署测试程序进行测试。
2.测试项目生成
新建测试项目目录:
t3test/
t3 ├── build ├── CMakeLists.txt └── src ├── CMakeLists.txt └── main.c
修改根目录CMakeLists.txt
PROJECT(NEWHELLO) ADD_SUBDIRECTORY(src)
修改src中CMakeLists.txt
ADD_EXECUTABLE(main main.c) TARGET_LINK_LIBRARIES(main hello)
编写测试文件main.c
#include <stdio.h> int main() { HelloFunc(); return 0; }
进入build中进行编译生成
cmake .. make
进入build/src中会看到生成的main文件,执行,可以看到生成效果:
./main
如果输出Hello World\n就是成功了!
相关文章推荐
- 配置记录:CMake管理项目-Caffe在windows平台的C++编译安装及其依赖项
- 安装px4编译环境时出现CMAKE Error:错误
- Linux源码安装mysql 5.6.22 (cmake编译)
- MySQL编译安装记录
- Linux源码安装mysql 5.6.12 (cmake编译)
- CentOS6.5上Boost库编译安装全记录
- doxygen安装(doxygen的编译依靠cmake)
- Linux 下 MySQL 5.5.8 源码编译安装记录
- 编译安装MySQL5.1.72实战记录
- CentOS 7 源码编译安装 MySQL 5.7记录
- PIL安装记录,编译支持jpeg png
- ubuntu ffmpeg+sdl编译安装过程记录
- CentOS6.7下使用cmake编译安装MySQL5.5.32
- 学习记录-Qwt6.1.0编译安装
- cmake的安装编译
- 用cmake生成makefile编译安装mysql的卸载方法
- hue安装记录_编译源码安装
- CentOS5.6下使用cmake编译MySQL5.5.13源码和安装笔录
- CMAKE--跨平台安装编译工具
- 编译安装cmake3.9.1