我在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/