首页 > 解决方案 > ExternalProject_Add for Makefile 项目在构建过程中出错

问题描述

我正在尝试添加Postgresql作为我的项目的依赖项,我正在使用 ExternalProject 模块从 github 下载源代码并构建,但是从 cmake ( cmake --build .) 运行时构建步骤失败。配置步骤似乎成功了,如果我转到下的 Build 目录EP_BASE并执行make它会成功运行。我在构建过程中收到以下错误:

<...>/Source/postgresql_external/src/common/relpath.c:21:10: fatal error: catalog/pg_tablespace_d.h: No such file or directory
21 | #include "catalog/pg_tablespace_d.h"
  |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[5]: *** [<builtin>: relpath.o] Error 1
make[4]: *** [Makefile:42: all-common-recurse] Error 2
make[3]: *** [GNUmakefile:11: all-src-recurse] Error 2

我的外部项目添加如下所示:

ExternalProject_Add(postgresql_external
  GIT_REPOSITORY    https://github.com/postgres/postgres.git
  GIT_TAG           REL_12_4
  CONFIGURE_COMMAND <SOURCE_DIR>/configure --prefix=<INSTALL_DIR>
  LOG_CONFIGURE 1
  LOG_BUILD 1
  LOG_INSTALL 1
)

这是在 Ubuntu 20.04 LTS 上运行的,带有 cmake 3.16.3、gcc 9.3.0

标签: cmakeexternal-projectcmake-modules

解决方案


尝试

ExternalProject_Get_Property(postgresql_external install_dir)
include_directories(${install_dir}/include)

我猜,您还没有将include目录传播到您的目标,但它是 evtl。您的系统已知(因此成功调用手动调用make


推荐阅读