2017-09-16 332 views
0

我正在使用ROS和WebRTC的项目中工作。使用_GLIBCXX_USE_CXX11_ABI链接ROS库问题

要构建这两个库,我必须定义“WEBR​​TC_POSIX”和“_GLIBCXX_USE_CXX11_ABI = 0”。

但是,当我将“_GLIB_CXX_USE_CXX11_ABI = 0”定义添加到编译器时,我从ROS中收到不满意的链接错误。

我使用Ubuntu 17.04,ROS农历,G ++ 6.3和3.7.2的CMake

是否与ROS和std = C++ 11的任何麻烦吗?

+0

什么是这些“来自ROS的不满意的链接错误”? – ks1322

+0

添加该定义,就像ROS库不在那里。我得到“未定义的引用ros :: init”,“未定义引用”ros :: NodeHandle ...“等等 – CharlieHollow

+0

你的声音没有链接到'roscpp'。 – mikkola

回答

0

我有这个相同的问题。最终我发现你可能需要使用Ubuntu 14.04和ROS Indigo来进行干净的编译。 ROS通信不会经常更改,因此您可能能够在单独的PC或VM上运行此节点。


我试图使它的工作,但最终,你必须建立所有ROS,并与具有标志设置定制版本,更换了很多Ubuntu系统库。

我做了一个ROS源安装+一个自定义的Boost版本。当我不得不添加Log4Cxx时,我放弃了。如果我没有记错的话,还有一些其他的依赖项需要编译。

+1

对不起,但解决方案的答案在哪里? – Gahan

+0

@Gahan解决方案是,您需要使用14.04和ROS Indigo有没有不同的ABI;否则,你需要重新编译包括所有依赖项在内的所有依赖项,包括那些通常是系统依赖项的项目,因为这些包在新版本的Ubuntu版本中都有新的ABIs,对不起,如果你不清楚从我的答案。 – cr2017