cmake中编译生成动态库文件.so,静态库文件.a到指定文件夹及安装

本文详细介绍了如何使用CMake构建动态库和静态库。通过一个具体的实例,展示了从创建文件夹、编写源代码到配置CMakeLists.txt,再到编译和安装文件的完整过程。最终在指定位置生成了相应的库文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CMAKE关于生成库文件的简单用法

1.本文主要针对某个具体实例给出,首先建立一个文件夹test,现在有以下几个文件:

test/useHello.cpp

#include "libHelloSLAM.h"
int main(int argc,char** argv)
{
  printHello();
  return 0;  
}

test/include/libHelloSLAM.h

#ifndef LIBHELLOSLAM_H_
#define LIBHELLOSLAM_H_
void printHello();
#endif

tset/src/libHelloSLAM.cpp

#include <iostream>
using namespace std;

void printHello()
{
  cout<<"Hello SLAM!"<<endl;
}

2. 然后我们对于这几个文件建立test/CMakeLists.txt

cmake_minimum_required(VERSION 3.5)

#创建工程文件
project(helloSLAM)

#头文件,意思是当前可执行程序所使用的头文件在include中
include_directories(${PROJECT_SOURCE_DIR}/include)

#添加可执行程序
add_executable(helloSLAM useHello.cpp)

#生成动态库.so文件,默认在build文件夹中
add_library(hello_shared SHARED ${PROJECT_SOURCE_DIR}/src/libHelloSLAM.cpp)

#生成静态库.a文件
#add_library(hello ${PROJECT_SOURCE_DIR}/src/libHelloSLAM.cpp)

#连接,将动态库链接到可执行文件
target_link_libraries(helloSLAM hello_shared)

#设置编译模式
set(CMAKE_BUILD_TYPE "Release" )

#生成文件到指定位置
#set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)

#install 安装文件到指定位置
install(TARGETS hello_shared LIBRARY DESTINATION /usr/local/lib)
install(FILES ${PROJECT_SOURCE_DIR}/include/libHelloSLAM.h DESTINATION /usr/local/include)

3. 创建test/build

1.第一步

cd build
cmake ..

2.第二步

make

运行正常,指定位置会生成相应文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值