linux编译make生成动态库,Linux下使用cmake生成动态链接库并使用

使用cmake生成库主要要注意三个文件夹

(1)源文件文件夹

(2)中间文件夹(编译生成的.o等文件的文件夹)

(3)安装文件夹(最终可用的库所在的文件夹)

使用库的步骤

(1)在工程文件中包括库函数的头文件(可为绝对路径,也可配置全局环境变量用相对路径)

(2)在CMakeLists.txt或集成开发环境中指定库函数的动态链接库或者静态链接库所在的文件夹路径

(3)在CMakeLists.txt或集成开发环境中指定头文件的文件夹路径

(4)如果是动态链接库,且库函数不在linux默认查找路径下,运行时要修改环境变量才能使用

下文用最简单的示例来表示这个过程,假设我的库实现的是简单的加法计算。库函数的源文件名字叫hello.c,库函数的头文件名字叫hello.h,生成的动态链接库函数的名称叫libhello.so,目标是在/hello/install文件夹下安装这个库,以便后来调用。设库函数源文件在/home/hello/libhello目录,编译生成的中间文件夹在/home/hello/build

#1.生成库

文件夹结构如下

315ff5c60273ec9d015b13eb8fc82af1.png

##1.1编辑文件

在libhello文件夹下编辑hello.c文件

#include

#include"hello.h"

void hello()

{

printf("hello");

}

和hello.h头文件。

#ifndef HELLO_H

#define HELLO_H

#include

void hello();

#endif

##1.2使用cmake编译和安装

(1)在/home/hello/文件夹下新建CMakeLists.txt,添加以下内容

cmake_minimum_required (VERSION 2.6)

add_library(hello SHARED ${PROJECT_SOURCE_DIR}/libhello/hello.c)

install(TARGETS hello LIBRARY DESTINATION lib)

其中

add_library(hello SHARED ${PROJECT_SOURCE_DIR}/libhello/hello.c)

PROJECT_SOURCE_DIR 宏的值是后文中cmake gui的where is source code 选项选择的路径值,也就是顶层CMakeList.txt所在文件路径的值。

才采用的是hello

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值