当编译具有大小优化(-Os)的boost_regex时,我收到“重复部分”错误

当编译具有大小优化(-Os)的boost_regex时,我收到“重复部分”错误,第1张

概述编译器: http://sourceforge.net/projects/mingwbuilds/files/host-windows/releases/4.7.2/32-bit/threads-posix/sjlj/x32-4.7.2-release-posix-sjlj-rev6.7z 提升:http://sourceforge.net/projects/boost/files/boost/1 编译器: http://sourceforge.net/projects/mingwbuilds/files/host-windows/releases/4.7.2/32-bit/threads-posix/sjlj/x32-4.7.2-release-posix-sjlj-rev6.7z

提升:http://sourceforge.net/projects/boost/files/boost/1.52.0/boost_1_52_0.7z

(D:驱动器上)

boost_regex编译为:

b2 --prefix=D:\boost toolset=gcc --with-regex --layout=tagged release

码:

#include <boost\regex.hpp>int main() {  boost::regex reg("[a-z]+");}

编译参数:

g++ -I "d:\boost" -Os -o test.exe test.cpp -static -L d:\boost\stage\lib -lboost_regex-mt

错误:

d:\boost\stage\lib\libboost_regex-mt.a(regex.o): duplicate section `.rdata$_ZTVN5boost16exception_detail19error_info_injectorISt13runtime_errorEE[__ZTVN5boost16exception_detail19error_info_injectorISt13runtime_errorEE]' has different sized:\boost\stage\lib\libboost_regex-mt.a(regex.o): duplicate section `.rdata$_ZTVN5boost16exception_detail10clone_impliNS0_19error_info_injectorISt13runtime_errorEEEE[__ZTVN5boost16exception_detail10clone_impliNS0_19error_info_injectorISt13runtime_errorEEEE]' has different sized:\boost\stage\lib\libboost_regex-mt.a(regex.o): duplicate section `.rdata$_ZTSN5boost16exception_detail10clone_impliNS0_19error_info_injectorISt13runtime_errorEEEE[__ZTSN5boost16exception_detail10clone_impliNS0_19error_info_injectorISt13runtime_errorEEEE]' has different sized:\boost\stage\lib\libboost_regex-mt.a(regex.o): duplicate section `.rdata$_ZTSN5boost16exception_detail10clone_baseE[__ZTSN5boost16exception_detail10clone_baseE]' has different sized:\boost\stage\lib\libboost_regex-mt.a(regex.o): duplicate section `.rdata$_ZTSN5boost16exception_detail19error_info_injectorISt13runtime_errorEE[__ZTSN5boost16exception_detail19error_info_injectorISt13runtime_errorEE]' has different size

它编译好,但是我还没有测试它是否会在更复杂的代码中工作.删除-Os开关清除错误,但应用程序大小是两倍.

也许我应该使用大小优化构建Boost,但是我不知道在b2命令行中通过此选项的位置.

解决方法 在我的情况下,boost 1.58内部编译为“-march = i686”,但是我的代码没有.将“-march = i686”添加到我的项目中,摆脱了所有的“重复部分”.

经验教训:总是精心确保所有库和主项目都使用相同的编译器选项进行编译.

总结

以上是内存溢出为你收集整理的当编译具有大小优化(-Os)的boost_regex时,我收到“重复部分”错误全部内容,希望文章能够帮你解决当编译具有大小优化(-Os)的boost_regex时,我收到“重复部分”错误所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1254119.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存