GCC 4.9.1 编译在 RHEL 6.0 上失败,"libsanitizer"中出现编译错误
GCC 4.9.1 compilation fails on RHEL 6.0 with a compilation error in "libsanitizer"
谁能告诉我这里出了什么问题-
libtool: compile: /home/ritwik/build-gcc-4.9.1/./gcc/xgcc -shared-libgcc -B/home/ritwik/build-gcc-4.9.1/./gcc -nostdinc++ -L/home/ritwik/build-gcc-4.9.1/x86_64-unknown-linux-gnu/libstdc++-v3/src -L/home/ritwik/build-gcc-4.9.1/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs -L/home/ritwik/build-gcc-4.9.1/x86_64-unknown-linux-gnu/libstdc++-v3/libsupc++/.libs -B/usr/local/x86_64-unknown-linux-gnu/bin/ -B/usr/local/x86_64-unknown-linux-gnu/lib/ -isystem /usr/local/x86_64-unknown-linux-gnu/include -isystem /usr/local/x86_64-unknown-linux-gnu/sys-include -D_GNU_SOURCE -D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I. -I../../../../gcc-4.9.1/./libsanitizer/sanitizer_common -I.. -I ../../../../gcc-4.9.1/./libsanitizer/include -isystem ../../../../gcc-4.9.1/./libsanitizer/include/system -Wall -W -Wno-unused-parameter -Wwrite-strings -pedantic -Wno-long-long -fPIC -fno-builtin -fno-exceptions -fno-rtti -fomit-frame-pointer -funwind-tables -fvisibility=hidden -Wno-variadic-macros -I../../libstdc++-v3/include -I../../libstdc++-v3/include/x86_64-unknown-linux-gnu -I../../../../gcc-4.9.1/./libsanitizer/../libstdc++-v3/libsupc++ -DSANITIZER_LIBBACKTRACE -DSANITIZER_CP_DEMANGLE -I ../../../../gcc-4.9.1/./libsanitizer/../libbacktrace -I ../libbacktrace -I ../../../../gcc-4.9.1/./libsanitizer/../include -include ../../../../gcc-4.9.1/./libsanitizer/libbacktrace/backtrace-rename.h -g -O2 -D_GNU_SOURCE -MT sanitizer_platform_limits_posix.lo -MD -MP -MF .deps/sanitizer_platform_limits_posix.Tpo -c ../../../../gcc-4.9.1/./libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc -fPIC -DPIC -o .libs/sanitizer_platform_limits_posix.o
In file included from /usr/include/features.h:361:0,
from /usr/include/arpa/inet.h:22,
from ../../../../gcc-4.9.1/./libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:20:
/usr/include/sys/timex.h:145:31: error: expected initializer before ‘throw’
__asm__ ("ntp_gettimex") __THROW;
^
make[4]: *** [sanitizer_platform_limits_posix.lo] Error 1
make[4]: Leaving directory `/home/ritwik/build-gcc-4.9.1/x86_64-unknown-linux-gnu/libsanitizer/sanitizer_common'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/home/ritwik/build-gcc-4.9.1/x86_64-unknown-linux-gnu/libsanitizer'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/home/ritwik/build-gcc-4.9.1/x86_64-unknown-linux-gnu/libsanitizer'
make[1]: *** [all-target-libsanitizer] Error 2
make[1]: Leaving directory `/home/ritwik/build-gcc-4.9.1'
make: *** [all] Error 2
这个错误是在我制作gcc 4.9.1时出现的。
最近的google搜索显示:
https://gcc.gnu.org/ml/gcc/2014-02/msg00468.html但是没有解决方案,即使他面临着完全相同的问题。
我在CentOS 6.0上有同样的问题:在试图编译GCC-4.9.3时,我得到了同样的错误。
我能够使用以下解决方案:在配置GCC时禁用libsanitizer
和libcilkrts
:
./configure --prefix=/home/gz/apps/gcc-4.9.3 --enable-languages=c,c++
--disable-multilib --disable-libsanitizer --disable-libcilkrts
在linux/timex.h的顶部添加#include linux/time.h应该可以解决这个问题。这个问题可能是由于RHEL 6附带的gcc中的错误。这可以通过从redhat进行更新来解决。
相关文章:
- std::is_base_of表示ctor编译错误
- Qt5:使用QCommandLineParser类时出现奇怪的编译错误
- 如何修复sfml c++代码编译错误
- 使用 MATLAB 编码器生成C++代码:编译错误"undefined reference to `rgb2gray_tbb_real64'"
- 使用外部SDK工具链文件在VisualStudio上生成项目编译错误
- vscode下的Arduino代码出现意外编译错误
- 第三方 API 中的编译错误 - Visual Studio
- std::cout输出int时出现编译错误
- 奇怪的代码抛出编译错误模板< J,int aSize=10> C2143:语法错误:在"<"之前缺少";"
- 提升图广度优先搜索前置编译错误
- C++ 中的编译错误:未定义对"主"的引用 collect2:错误:ld 返回 1 个退出状态
- 使用带有 ref 参数的成员函数创建线程时出现编译错误
- 我在C++中遇到了这个奇怪的编译错误
- 在C++中使用 Catch 测试框架编译错误"error: expected ';' at end of declaration list"
- 使用 std::enable_if 限制派生类的模板参数时出现编译错误
- 现代OpenGL和GLEW Libraray的编译错误
- C++ 编译错误:意外的类型名称"字符串":预期的表达式
- C ++程序编译错误,找不到/访问文件
- 使用直接大括号初始化时,C++ 编译错误"声明末尾的预期";"
- 为什么传递非静态成员函数会导致编译错误?