在travis上使用带有-m32的g ++会导致错误

时间:2016-02-25 20:30:27

标签: c++ cmake g++ travis-ci

我正在安装这些软件包:g++-4.7 gcc-4.7-multilib我将CXX设置为g++-4.7

我通过发出${CXX} --version

验证编译器确实是4.7 之后我打电话给cmake:

cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS="-m32" .

我的项目只有c ++源文件,所以不需要C标志。我在travis上遇到的错误是:

/usr/include/c++/4.7/cstdio:43:28: fatal error: bits/c++config.h: No such file or directory

任何想法?我使用-m64

没有问题

修改

也试过g++-4.7-multilib(g ++而不是gcc),但仍然没有运气 - 同样的错误。

2 个答案:

答案 0 :(得分:1)

好像你碰到了这个:Missing include "bits/c++config.h" when cross compiling 64 bit program on 32 bit in Ubuntu

确保您安装了相同版本的gcc,g ++,gcc-multilib和g ++ - multilib,如果这样做无效,请尝试将-I/usr/include/c++/4.7/i686-linux-gnu添加到CXXFLAGS

答案 1 :(得分:0)

我看着日志,看到了......

Installing APT Packages (BETA)
Disallowing packages: g\+\+-4.7-multilib
If you require these packages, please review the package approval process at:
https://github.com/travis-ci/apt-package-whitelist#package-approval-process

仅针对gcc 4.6和4.7,该软件包不在白名单中 - 其他gcc版本有...将要求它。