Conda Build 打包 C++ 项目失败

Posted

技术标签:

【中文标题】Conda Build 打包 C++ 项目失败【英文标题】:Conda Build fails packaging C++ project 【发布时间】:2020-03-01 20:48:57 【问题描述】:

我正在尝试为这里的库创建一个配方:https://github.com/hyrise/sql-parser

我正在为 OSX 10.13 构建。

我的build.sh 看起来像这样:

#!/bin/bash
make VERBOSE=1
make DESTDIR="$PREFIX" install

我还按照此处设置了我的 SDK:https://docs.conda.io/projects/conda-build/en/latest/resources/compiler-tools.html#macos-sdk

我可以在 conda build 之外很好地构建项目,但是 conda build 失败并出现以下问题:

x86_64-apple-darwin13.4.0-clang++ -std=c++1z -Wall -Werror -O3 -fPIC -c -o src/SQLParser.o src/SQLParser.cpp
In file included from src/SQLParser.cpp:2:
In file included from src/SQLParser.h:4:
In file included from src/SQLParserResult.h:4:
In file included from src/sql/SQLStatement.h:4:
In file included from /Users/j/miniconda3/envs/p37/conda-bld/sql-parser_1583094509703/_build_env/bin/../include/c++/v1/vector:265:
In file included from /Users/j/miniconda3/envs/p37/conda-bld/sql-parser_1583094509703/_build_env/bin/../include/c++/v1/iosfwd:90:
/Users/j/miniconda3/envs/p37/conda-bld/sql-parser_1583094509703/_build_env/bin/../include/c++/v1/wchar.h:119:15: fatal error: 'wchar.h' file not found
#include_next <wchar.h>
              ^~~~~~~~~
1 error generated.
make: *** [Makefile:66: src/SQLParser.o] Error 1

我可以看到 wchar.h 在那个目录中

JMBA:v1 j$ ls -l /Users/j/miniconda3/envs/p37/conda-bld/sql-parser_1583094509703/_build_env/bin/../include/c++/v1 | grep wchar
-rw-rw-r--  41 j  staff    6272 28 Oct  2018 cwchar
-rw-rw-r--  41 j  staff    8080 28 Oct  2018 wchar.h

对此的任何帮助将不胜感激。

【问题讨论】:

错误信息指出#include_next,这意味着编译器正在尝试查找wchar.h文件,可能在系统标准包含目录中。您可能需要将 CONDA_BUILD_SYSROOT 设置为指向您放置 SDK 的位置。 【参考方案1】:

你需要想办法让-I$BUILD_PREFIX/include 到g++/gcc的调用中

【讨论】:

以上是关于Conda Build 打包 C++ 项目失败的主要内容,如果未能解决你的问题,请参考以下文章

vue项目打包部署-----解决打包后访问资源失败问题

UE4打包失败求助!!!

sbt生成的docker容器打包子项目失败

使用 conda-build 从相同的源代码构建两个具有不同要求的包

gradle build 时 Android 打包失败,错误为 3

记录idea maven项目打包部署web项目mapper扫描失败