新建工程并用cmake编译和安装(适合自己参考实验,待实验模型)

新建工程并用cmake编译和安装http://blog.csdn.net/ktigerhero3/article/details/69379767

本文介绍新建标准的cmake工程及使用cmake编译、CMakeLists的编写、编译和安装标准的cmake工程。

1.新建cmake工程

(1)cmake工程目录结构 
在cmake工程中有不同的文件夹。文件夹结构通常如下。 
这里写图片描述 
(2)文件夹介绍 
src 源文件所在位置的目录 
include 头文件所在位置的目录 
build 编译生成的文件所在的目录 
hellofunlib文件夹 为hellofun库函数源文件所在文件夹 
bin 生成的主函数所在的文件夹 
lib 生成的库函数所在文件夹

2.实现编译主函数和库函数并放到指定文件夹

任务: 
(1)编译main函数生成cmakehello可执行文件,并放在/build/bin文件下 
(2)编译hellofuc.c生成 动态链接库函数文件hellofuc.so,并放在/build/lib文件夹下。 
实现: 
(a)顶层/CMakeLists.txt

cmake_minimum_required (VERSION 2.6)
add_subdirectory(src)
add_subdirectory(hellofunlib)

MESSAGE(STATUS "This is PROJECT_BINARY_DIR " ${PROJECT_BINARY_DIR})
MESSAGE(STATUS "This is PROJECT_BINARY_DIR " ${PROJECT_BINARY_DIR})
#指定可执行文件和库文件目录
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib)
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

(b)主函数/src/main.c

#include <stdio.h>
int main()
{
printf("hello");
return 0;
}
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

(c)src文件夹src/CMakeLists.txt

ADD_EXECUTABLE(cmakehello main.c)
 
 
  • 1

(d)库函数文件夹函数/hellofunlib/hellofun.c

#include <stdio.h>
#include "hellofun.h"
void hello()
{
printf("my hello");
}
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

(e)库函数文件夹头文件/hellofunlib/hellofun.h

#ifndef HELLOFUN_H
#define HELLOFUN_H
#include <stdio.h>
void HelloFunc();
#endif
 
 
  • 1
  • 2
  • 3
  • 4
  • 5

(f)库函数文件夹hellofunlib/CMakeLists.txt

ADD_LIBRARY(hellofun SHARED hellofun.c)
 
 
  • 1

最后切换到/bulid目录下 
输入命令

cmake ..
 
 
  • 1
make
 
 
  • 1

发现在/build/src目录下生成可执行文件cmakehello 
在/build/bin目录下生成库函数文件libhellofun.so

3.安装库函数和可执行文件到指定文件夹

任务: 
将生成可执行文件cmaketest安装到/home/programFiles/bin 
生成库函数文件libhellofun.so 安装到/home/programFiles/lib

(a)在顶层 /CMakeLists.txt 
加入set(CMAKE_INSTALL_PREFIX /home/programFiles) 
(b)在src文件夹 src/CMakeLists.txt 
加入

install(TARGETS cmakehello RUNTIME DESTINATION bin)
 
 
  • 1

(c)在库函数文件夹hellofunlib/CMakeLists.txt 
加入

install(TARGETS hellofun LIBRARY DESTINATION lib)
 
 
  • 1

然后切换到build文件夹下

cmake ..
make
make install
 
 
  • 1
  • 2
  • 3

可以发现 
生成可执行文件cmaketest已经安装到/home/programFiles/bin 
库函数文件libhellofun.so 已经安装到/home/programFiles/lib


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值