c++ - 如何避免直接链接到cmake中的库文件?

标签 c++ cmake

我在Mac上使用cmake编写一个c项目。我用自制的。我通过自制软件安装了libpqxx。我有以下CMakeLists.txt。

cmake_minimum_required(VERSION 3.11)
project(imagedb)

set(CMAKE_CXX_STANDARD 14)
add_executable(imagedb main.cpp)

target_link_libraries( imagedb /usr/local/lib/libpqxx.dylib)

在构建此版本时,我想避免在此处使用绝对路径。给定/usr/local已经在路径前缀中,我如何使用cmake做到这一点?

最佳答案

通常,您应该使用find_package查找依赖项。

查看libpqxx的存储库,您可以看到它们提供了CMake配置文件。

因此,在CMakeLists.txt文件中,您只需要执行以下操作:

find_package(libpqxx REQUIRED)
target_link_libraries(imagedb libpqxx::pqxx_shared)

如果由于某些原因自制版本未附带libpqxx-config.cmake,则必须编写find file

关于c++ - 如何避免直接链接到cmake中的库文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56696047/

相关文章:

c++ - CMake 单元测试 - 未解析的外部符号

c++ - 什么时候使用 find_path?

c++ - Android Studio C++ <list> begin()/end() 无匹配函数[可能是 cmake 问题]

c++ - CMake - 不同目标的不同包含目录?

c++ - 在 decltype 中使用 this 指针

c++ - 在 Visual Studio '13 项目中设置 ZeroMQ

C++ 调用具有不同签名的函数,具体取决于类型

c++ - 自纪元以来的时间为-1

c# - C++控制台程序的前端

mysql - 尝试包含 mysql-connector-c 时链接器出现 C 错误