2017-09-16 96 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