CMake调用第三方库的两种方法

简介: 这两种方法都可以用来在 CMake 中调用第三方库,选择哪种方法取决于你的具体需求和第三方库的提供情况。

在 CMake 中调用第三方库主要有两种方法:直接链接静态/动态库,或者使用 find_package 命令。

  1. 直接链接静态/动态库

你可以直接在 target_link_libraries 命令中指定要链接的库的路径。例如:

add_executable(my_program my_program.cpp)
target_link_libraries(my_program /path/to/library/libmy_library.a)

在这个例子中,我们链接了一个名为 libmy_library.a 的静态库。你也可以链接动态库,只需将 .a 替换为 .so (在 Linux 和 macOS 上)或 .dll (在 Windows 上)。

  1. 使用 find_package 命令

如果第三方库提供了 CMake 配置文件(通常名为 FindLIBRARY.cmakeLIBRARYConfig.cmake),你可以使用 find_package 命令来找到并链接这个库。例如:

find_package(MyLibrary REQUIRED)

add_executable(my_program my_program.cpp)
target_link_libraries(my_program MyLibrary::MyLibrary)

在这个例子中,find_package 命令查找名为 MyLibrary 的库。如果找到了库,它会设置一些变量,例如 MyLibrary_FOUNDMyLibrary_INCLUDE_DIRS。然后,我们可以使用 target_link_libraries 命令来链接这个库。

注意,使用 find_package 命令需要你的 CMAKE_MODULE_PATH 包含找到 FindLIBRARY.cmakeLIBRARYConfig.cmake 的路径。你可以使用 list(APPEND CMAKE_MODULE_PATH "/path/to/cmake/files") 来添加路径。

这两种方法都可以用来在 CMake 中调用第三方库,选择哪种方法取决于你的具体需求和第三方库的提供情况。

目录
相关文章
|
传感器 物联网
详解MQTT主题和通配符
详解MQTT主题和通配符
2013 0
详解MQTT主题和通配符
|
API PHP C++
Windows下用vs2017编译和配置libcurl库(手把手教,适合新人)
Windows下用vs2017编译和配置libcurl库(手把手教,适合新人)
2594 0
|
资源调度 算法 JavaScript
Python基础专题 - 超级详细的 Random(随机)原理解析与编程实践
Python基础专题 - 超级详细的 Random(随机)原理解析与编程实践
1670 0
|
4月前
|
人工智能 数据可视化 算法
企业想做数智化,数据仓库架构你得先搞懂!
在数智化浪潮下,数据驱动已成为企业竞争力的核心。然而,许多企业在转型过程中忽视了数据仓库这一关键基础。本文深入解析数据仓库的重要性,厘清其与数据库的区别,详解ODS、DWD、DWS、ADS分层逻辑,并提供从0到1搭建数据仓库的五步实战方法,助力企业夯实数智化底座,实现数据治理与业务协同的真正落地。
企业想做数智化,数据仓库架构你得先搞懂!
CMake的拷贝文件到指定目录——CMake三板斧
CMake的拷贝文件到指定目录——CMake三板斧
2072 0
|
应用服务中间件 网络安全 nginx
轻松上手Nginx Proxy Manager:安装、配置与实战
Nginx Proxy Manager (NPM) 是一款基于 Nginx 的反向代理管理工具,提供直观的 Web 界面,方便用户配置和管理反向代理、SSL 证书等。本文档介绍了 NPM 的安装步骤,包括 Docker 和 Docker Compose 的安装、Docker Compose 文件的创建与配置、启动服务、访问 Web 管理界面、基本使用方法以及如何申请和配置 SSL 证书,帮助用户快速上手 NPM。
10290 1
|
编译器 C++
使用Visual Studio 2022 创建lib和dll并使用
本文介绍了如何在Visual Studio 2022中创建静态库(lib)和动态库(dll),并展示了如何使用这些库。文章详细说明了创建新项目、编写代码、生成库文件、配置项目属性以及编写测试代码的步骤,并提供了相应的截图和代码示例。作者还分享了在创建和使用库的过程中遇到的一些问题及其解决方案。
3606 0
使用Visual Studio 2022 创建lib和dll并使用
|
机器学习/深度学习 PyTorch TensorFlow
Jetson 学习笔记(五):pb转uff---pb转onnx转trt----pth转onnx转pb
这篇文章是关于如何在NVIDIA Jetson平台上使用TensorRT来优化和部署深度学习模型的详细教程,包括了从不同格式的模型转换到TensorRT引擎的构建和推理过程。
509 1
Jetson 学习笔记(五):pb转uff---pb转onnx转trt----pth转onnx转pb
|
Ubuntu 编译器 C++
【Conan 入门教程 】在Ubuntu上使用Conan编译C++第三方库:一站式解决方案
【Conan 入门教程 】在Ubuntu上使用Conan编译C++第三方库:一站式解决方案
3690 1
|
Unix 编译器 开发工具
Cmake 命令行参数:探索 Cmake 的设置和配置选项
Cmake 命令行参数:探索 Cmake 的设置和配置选项
2330 1