cmake 构建含有库版本的库

本文介绍了一个使用CMake进行项目构建的例子。该例子包括源代码文件show.hpp和show.cpp,实现了简单的Hello World输出功能,并展示了如何通过CMakeLists.txt配置文件设置项目属性、定义目标库以及指定编译选项。

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

1. 源代码

show.hpp

#ifndef __SHOW_HPP__
#define __SHOW_HPP__
void show();
#endif

show.cpp

#include <iostream>
#include "show.hpp"
void  show()
{
	std::cout<<"Hello World."<<std::endl;
}

2. cmake

cmake_minimum_required(VERSION 2.8)

project(show)

add_definitions(-Ofast -fPIC -ffast-math -Wall -Wextra -Wno-unused-function -fpermissive)

set(SHOW_MAJOR 1)
set(SHOW_MINOR 2)
set(SHOW_PATCH 3)

set(SRCS
	${CMAKE_SOURCE_DIR}/show.cpp
)

include_directories(
	${CMAKE_SOURCE_DIR}/
)

set(LIBRARY_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/install)

#依赖的库
#link_libraries();

add_library(show SHARED ${SRCS})

#VERSION指代动态库版本,SOVERSION指代API版本
set_target_properties(show PROPERTIES VERSION ${SHOW_MAJOR}.${SHOW_MINOR}.${SHOW_PATCH})

#install类型 TARGETS, FILES, DIRECTORY, SCRIPT, CODE, EXPORT
# 安装头文件到指定位置
#install(FILES show.hpp DESTINATION /usr/include)

#安装目录到指定位置
#install(DIRECTORY install DESTINATION /usr/lib)

#target可以是静态库,动态库,可执行二进制, 头文件
#install(TARGETS <target>...  [...])
#install(TARGETS test libtest libstaticlib
#       RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
#       LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
#       ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
#)
# ARCHIVE  静态库
# LIBRARY  动态库
# RUNTIME  可执行二进制
# ...

3. 输出

libshow.so libshow.so.1.2.3

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值