C++ 在RHEL 5.3和libstdc+上链接GCC 4.3.2时出错+;。所以有GCC大师吗?

C++ 在RHEL 5.3和libstdc+上链接GCC 4.3.2时出错+;。所以有GCC大师吗?,c++,linux,gcc,linker,g++,C++,Linux,Gcc,Linker,G++,尝试使用RHEL5.3 GCC 4.3.2编译器在该平台上构建我的软件。无论我在使用-O2编译时尝试了什么,我都会遇到以下错误,但它在没有优化的情况下构建得很好。有什么想法吗 /usr/bin/ld: myapp: hidden symbol `void std::__ostream_fill<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> &g

尝试使用RHEL5.3 GCC 4.3.2编译器在该平台上构建我的软件。无论我在使用-O2编译时尝试了什么,我都会遇到以下错误,但它在没有优化的情况下构建得很好。有什么想法吗

/usr/bin/ld: myapp: hidden symbol `void std::__ostream_fill<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, long)' isn't defined
/usr/bin/ld: final link failed: Nonrepresentable section on output
/usr/bin/ld:myapp:未定义隐藏符号'void std::uu ostream_fill(std::basic_ostream&,long)'
/usr/bin/ld:最终链接失败:输出上不可呈现的部分
在RHEL5.3中,我使用
/usr/bin/g++43
进行编译和链接。正确的
libstdc++。因此
可在此处找到:

/usr/lib/gcc/i386-redhat-linux6E/4.3.2/libstdc++.so

它是一个文本文件,包含
输入(-lstdc++\u非共享/usr/lib/libstdc++.so.6)


这不是与系统stdlibc++4.1版本不匹配吗?

您似乎遇到了问题--我们可以看到完整的命令行吗


例如,由于GCC决定内联不同的内容,在不同的优化级别上可能会发生什么变化。

您似乎遇到了问题——我们可以看到完整的命令行吗


例如,由于GCC决定内联不同的内容,所以在不同的优化级别上可能会发生变化。

这只会在优化时发生。这能提供线索吗?

这只会发生在优化中。这提供了线索吗?

结果是RHEL 5.3:-/.中的GCC错误。我给维护人员Jakub Jelinek发了一封电子邮件,他说RHEL 5.4(即将推出)将有一个补丁,并且将升级到GCC 4.4


一种解决方法是使用-fno内联,但这有一些明显的缺点。

结果是RHEL 5.3:-/。我给维护人员Jakub Jelinek发了一封电子邮件,他说RHEL 5.4(即将推出)将有一个补丁,并且将升级到GCC 4.4


解决方法是使用-fno内联,但这有一些明显的缺点。

对于组件:/usr/bin/g++43-c-pipe-Wextra-Wcast qual-Wno long-m32-O2-Wall-W-D_可重入-DQT_GUI_LIB-DQT_CORE_LIB-DQT_SHARED-D_可重入-D_-GNU源代码-DQT_NO_调试-DQT WEBKIT_库[各种包括,等等]:对于链接:/usr/bin/g++-g++43-qt-Wl-DQT,-rpath,/home/hudson/qt4/lib-omyapp[…大量的.o文件][各种静态和共享库]这是一个qmake/qt4.5项目。如果您对问题进行编辑而不是评论,我会更喜欢它,但是哦,好吧:)嗯,因此从这一点上看不太明显;我必须试着找到一个小测试用例来复制它。我能够用最新的Gnucap快照()来复制它——可能是RHEL 5.3特定于GCC的我设置了CC=/usr/bin/gcc43 CXX=/usr/bin/g++43 LINK=/usr/bin/g++43,然后运行configure和make。组件的错误相同:/usr/bin/g++43-c-pipe-Wextra-Wcast qual-Wno long-m32-O2-Wall-W-D_REENTRANT-DQT_GUI_LIB-DQT_CORE_LIB-DQT_SHARED-D_REENTRANT-D_GNU_SOURCE-DQT_NO_调试-DQT_WEBKIT__LIB[各种包括,等等]链接:/usr/bin/g++43-Wl-O1-Wl-Wl,--rpath,/home/qtson/hudson/qt4/LIB-o-a.myo[][各种静态和共享库]这是一个qmake/qt 4.5项目。如果您对问题进行了编辑而不是评论,我会更喜欢它,但是哦,好吧:)嗯,因此从这一点上看不太明显;我必须尝试找到一个小的测试用例来重现它。我能够用最新的Gnucap快照重现它()--可能是RHEL 5.3特定于GCC的我设置了CC=/usr/bin/gcc43 CXX=/usr/bin/g++43 LINK=/usr/bin/g++43,然后运行configure和make。同样的错误