在Solaris中链接某些内容时,同事遇到链接器警告:
ld: warning: symbol 'vtable for boost::system::error_category::std_category' has differing sizes:
(file blah.o value=0x24; file (...)/libboost_system.a(error_code.o) value=0x14
blah.o definition taken
...在boost / system / error_code.hpp中存在[显然]有问题的代码。使用-std=c++11
进行编译时会发生这种情况,但不会使用-std=c++98
进行编译。
答案 0 :(得分:1)
从一开始就应该很明显,但我很紧张。我们最近从C ++ 98切换到C ++ 14,但是boost库是使用编译器的默认值 - C ++ 98构建的。