【问题标题】:How to add external library to CMakeLists?如何将外部库添加到 CMakeLists?
【发布时间】:2017-06-05 22:16:51
【问题描述】:

正常编译(工作正常):

g++ DBHandler.cpp Functions.cpp Main.cpp -I/usr/local/include -L/usr/local/lib -lconfig++ -lpqxx -lpq -o dbhandler

可以运行:

./dbhandler

CMakeLists.txt(标准):

cmake_minimum_required(VERSION 2.8.9)
project(DBHandler)
include_directories(include)
file(GLOB SOURCES "src/*.cpp")
target_link_libraries(dbhandler config++ pqxx pq)
add_executable(dbhandler ${SOURCES})

如何更改 CMakeLists.txt 并添加:

-I/usr/local/include -L/usr/local/lib -lconfig++ -lpqxx -lpq

用cmake编译程序?

【问题讨论】:

标签: makefile cmake linker g++ libpqxx


【解决方案1】:

正确的解决方案是使用CMake包PkgConfig来使用pkg_search_module

您的文件将变为:

cmake_minimum_required(VERSION 2.8.9)
project(DBHandler)

find_package(PkgConfig REQUIRED)

pkg_search_module(CONFIGPP REQUIRED config++)
pkg_search_module(PQ REQUIRED pq)
pkg_search_module(PQXX REQUIRED pqxx)

include_directories(include ${CONFIGPP_INCLUDE_DIRS} ${PQ_INCLUDE_DIRS} ${PQXX_INCLUDE_DIRS})
file(GLOB SOURCES "src/*.cpp")
target_link_libraries(dbhandler ${CONFIGPP_LIBRARIES} ${PQ_LIBRARIES} ${PQXX_LIBRARIES})
add_executable(dbhandler ${SOURCES})

【讨论】:

  • /usr/share/cmake-3.7/Modules/FindPkgConfig.cmake:637 处的 CMake 错误(消息):未找到所需的“pqxx”库 sudo apt-get install .. . 不是来自消息来源。也许,这就是缺少 findlib.cmake-s 文件的问题?
  • 你应该安装包libpqxx-devsudo apt-get install libpqxx-dev
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-06-19
  • 1970-01-01
  • 2019-03-27
  • 1970-01-01
  • 2022-11-12
  • 2021-09-29
  • 2014-08-25
相关资源
最近更新 更多