cmake find_package install安装打包示例
时间: 2023-08-02 11:09:09 浏览: 112
下面是一个简单的示例,演示如何使用 CMake、find_package、install 和 CPack 工具来构建、打包和安装一个简单的 C++ 应用程序。
假设我们有一个名为 "hello" 的 C++ 应用程序,它依赖于 Boost 库和 OpenSSL 库。我们的目标是在 Linux 系统上构建、打包和安装这个应用程序。
1. 安装 Boost 和 OpenSSL 库:
```
sudo apt-get install libboost-all-dev libssl-dev
```
2. 创建一个名为 CMakeLists.txt 的文件,描述构建过程:
```
cmake_minimum_required(VERSION 3.10)
project(hello)
# 查找 Boost 库
find_package(Boost REQUIRED COMPONENTS system)
# 查找 OpenSSL 库
find_package(OpenSSL REQUIRED)
# 添加可执行文件
add_executable(hello main.cpp)
# 链接 Boost 和 OpenSSL 库
target_link_libraries(hello Boost::system OpenSSL::SSL OpenSSL::Crypto)
# 安装可执行文件到 /usr/local/bin 目录下
install(TARGETS hello DESTINATION /usr/local/bin)
# 使用 CPack 工具生成 DEB 软件包
set(CPACK_GENERATOR "DEB")
set(CPACK_PACKAGE_NAME "hello")
set(CPACK_PACKAGE_VERSION "1.0")
set(CPACK_PACKAGE_DESCRIPTION "A simple hello world program")
include(CPack)
```
3. 创建一个名为 main.cpp 的文件,作为应用程序的源代码:
```
#include <iostream>
#include <boost/asio.hpp>
#include <openssl/ssl.h>
int main()
{
std::cout << "Hello, world!" << std::endl;
std::cout << "Boost version: " << BOOST_LIB_VERSION << std::endl;
std::cout << "OpenSSL version: " << SSLeay_version(SSLEAY_VERSION) << std::endl;
return 0;
}
```
4. 在项目根目录下创建一个名为 build 的文件夹,并进入该文件夹:
```
mkdir build
cd build
```
5. 运行 CMake 命令来生成构建文件:
```
cmake ..
```
6. 运行 make 命令来构建应用程序:
```
make
```
7. 运行 make install 命令来安装应用程序:
```
sudo make install
```
8. 运行 CPack 命令来生成软件包:
```
cpack
```
9. 在 build 目录下可以找到生成的软件包,例如 hello-1.0-Linux.deb。
这样,我们就成功地使用 CMake、find_package、install 和 CPack 工具来构建、打包和安装一个简单的 C++ 应用程序。
阅读全文