cmake - 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
解决方案
尝试
ExternalProject_Get_Property(postgresql_external install_dir)
include_directories(${install_dir}/include)
我猜,您还没有将include
目录传播到您的目标,但它是 evtl。您的系统已知(因此成功调用手动调用make
)
推荐阅读
- java - 尝试在空对象上调用虚拟方法“void android.widget.Button.setVisibility(int)”
- flutter - Flutter 错误:查找已停用小部件的祖先是不安全的
- react-native - 反应原生平面列表分页启用删除问题
- css - safari 自动建议的样式密码
- java - 不受支持的 JavaFX 配置:类是从“未命名模块 @...”加载的
- c# - 一对扑克牌 C# 的 GetHashCode
- java - Andriod Studio“受信任的证书条目不受密码保护”
- ip-address - 更改 IP 地址后无法通过浏览器访问 Bitnami Stack LimeSurvey 应用程序(托管在 AWS ec2 实例上)
- reactjs - 如何在 reactJS 中添加对 twitch 视频播放器的响应能力
- python - cx_Oracle.DatabaseError: DPI-1047: 找不到 64 位 Oracle 客户端库 oracle 10