2012-04-16 73 views
2

我正在構建一個redistrbutable .so文件。如何擺脫'GLIBCXX_3.4.9找不到錯誤'?

但是,當我的用戶嘗試使用它時,他們得到了可怕的/usr/lib/libstdc++.so.6: version GLIBCXX_3.4.9' not found錯誤。

做一個objdump的,似乎它的這種特殊的符號在我的可執行文件,導致了問題: _ZSt16__ostrea[email protected]@GLIBCXX_3.4.9

我如何告訴我的GCC/G ++編譯/鏈接對舊版本的GLIBXX,使我用戶不會得到這個錯誤?

還是解決這個難題的唯一方法是安裝一個單獨的具有GLIBXX的舊版本的Linux?

+0

您可以嘗試靜態鏈接到C/C++庫。 – trojanfoe 2012-04-16 15:35:20

+0

我不能。我的圖書館是封閉的源代碼,並且靜態鏈接將gpl許可證應用到它 – pdeva 2012-04-16 15:36:13

+0

確定嗎? http://gcc.gnu.org/onlinedocs/libstdc++/faq.html#faq.license.what – trojanfoe 2012-04-16 15:42:12

回答

0

您要爲 GLIBCXX_3.4.9建設,因此用戶也需要有至少GLIBCXX_3.4.9。

+1

我知道。事情是我的大部分用戶不。所以我需要知道如何告訴gcc構建一個較低版本。這是否只需要傳遞額外的參數或者安裝整個bew,老版本的linux? – pdeva 2012-04-16 21:23:03