尽管指定了lib文件,但是g ++链接器错误

时间:2017-04-27 11:18:30

标签: c++ c++11 ice

我正在尝试编译Zeroc ICE演示程序。

在链接时,我收到多个undefined reference错误。

/Clock.cpp:71: undefined reference to IceInternal::Outgoing::Outgoing(IceProxy::Ice::Object*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Ice::OperationMode, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const*)'

我尝试了以下方法来诊断问题:

在g ++命令中更改lib引用的顺序(source cpp then -l):

g++ -std=c++11 Clock.cpp -lpthread -lIce -lIceUtil  -lIceStorm

但没有帮助。

此外,我试图查看引用的lib文件是否包含报告的符号。我跑objdump -TC libIce.so看看:

00000000001f53d0 g    DF .text  000000000000141c  Base        IceInternal::Outgoing::Outgoing(IceProxy::Ice::Object*, std::string const&, Ice::OperationMode, std::map<std::string, std::string, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > > const*)

我使用g ++(GCC)6.2.0。

有人可以帮忙吗。

0 个答案:

没有答案