CMake如何将子项目与外部库链接

lymnna71  于 2023-06-06  发布在  其他
关注(0)|答案(1)|浏览(169)

我的项目结构如下:

CMakeLists.txt
cmake
  CMakeLists.txt
src
  server
  CMakeLists.txt
    impl
      server.cpp
    CMakeLitst.txt
    main.cpp

我试图包括子项目src,这取决于在我的情况下PostgreSQL。Cmake配置正常,但构建子项目时出错:libpq-fe.h: No such file or directory
PostgreSQL正在查找ok,并且没有子项目的链接良好。
以下是当前的CMakeLists.txt文件:
cmake/CmakeLists.txt:

FetchContent_Declare(ormpp
             GIT_REPOSITORY https://github.com/qicosmos/ormpp.git
             GIT_TAG        6f4f9dcb07487a4a7273eb9fa0d7535f6adf6963)

FetchContent_MakeAvailable(ormpp)

CMakeLists.txt:

find_package(PostgreSQL REQUIRED)
add_subdirectory(cmake)
add_subdirectory(src)

src/server/CMakeLists.txt:

add_executable(server main.cpp)
target_link_libraries(server PUBLIC PostgreSQL::PostgreSQL)

我必须在我的CMakeFiles中更改什么才能使子项目链接正常工作?
先谢谢你。

ogq8wdun

ogq8wdun1#

您需要添加以下内容:

target_include_directories(server SYSTEM "D:\postgreSQL\postgresql\include")

或者,如果您有多个目标并且只想指定一次:

include_directories(SYSTEM "D:\postgreSQL\postgresql\include")

参考:https://cmake.org/cmake/help/latest/command/target_include_directories.html

相关问题