首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用CMake安装libpq依赖项

使用CMake安装libpq依赖项
EN

Stack Overflow用户
提问于 2018-06-26 18:09:41
回答 2查看 1.2K关注 0票数 2

我正在用Windows上的CMake构建一个程序。该程序依赖于C++的PostgreSQL库libpq

我加载PostgreSQL包,然后找到它和它所构建的程序。但是,为了使用它,我想复制libpq.dll及其在build文件夹中的依赖项。我在构建后命令中复制了libpq.dll,但这还不够,因为它依赖于其他库。

为了解决所有依赖关系,将libpq.dll和所需的所有文件复制到其中的最佳方法是什么?

代码语言:javascript
复制
cmake_minimum_required (VERSION 3.10)

project (postgresqldatabase)
set (CMAKE_INCLUDE_CURRENT_DIR ON)

find_package (PostgreSQL REQUIRED)

set (CMAKE_INCLUDE_CURRENT_DIR ON)
include_directories (${CMAKE_SOURCE_DIR}/src ${PostgreSQL_INCLUDE_DIRS})

file (GLOB_RECURSE PROJECT_SRC *.cpp)

add_library (${PROJECT_NAME} SHARED ${PROJECT_SRC})
target_link_libraries (${PROJECT_NAME} ${PostgreSQL_LIBRARIES})

# Copy PostgreSQL .dll files on bin folder if we are on Windows
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
  # It prints C:\Program Files\PostgreSQL\9.4\lib
  message (STATUS "paths are ${PostgreSQL_LIBRARY_DIRS}")
  # It prints  C:/Program Files/PostgreSQL/9.4/lib/libpq.lib
  message (STATUS "libraries are ${PostgreSQL_LIBRARIES}")
  add_custom_command (TARGET ${PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different ${PostgreSQL_LIBRARY_DIRS}/libpq.dll $<TARGET_FILE_DIR:${PROJECT_NAME}>)
  # I need to copy also dll's needed to libpq.dll
endif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
EN

回答 2

Stack Overflow用户

发布于 2018-09-04 03:44:15

在我的项目中,我使用了一个专用的libs文件夹。我发现我需要以下DLL:

  • libeay32.dll
  • libiconv-2.dll
  • libintl-8.dll
  • libpq.dll
  • ssleay32.dll

这也得到了DependencyWalker的验证,也许在一个需要更多功能的项目中,你可能需要一些其他的动态链接库,但对于基本的SQL操作,这些都是已经设置好的。

票数 1
EN

Stack Overflow用户

发布于 2021-01-20 18:02:46

不确定这是否解决了您的问题,但它对我有效:

代码语言:javascript
复制
find_package(PostgreSQL REQUIRED)
include_directories (${PostgreSQL_INCLUDE_DIRS})
link_directories(${PostgreSQL_LIBRARY_DIRS})

另外,这解决了我在这个问题上遇到的问题,所以希望这能对其他人有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51040263

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档