我該如何避免這種情況?我有一個非常簡單的C++程序編譯在Ubuntu的盒子上。當我將其移動到Red Hat和嘗試執行它,我得到一個錯誤這樣的:在不同機器上使用二進制文件時共享對象錯誤
cannot find shared object stdlibc++5.so
怎樣的商業軟件解決此得到的,安裝在用戶機器上的STDLIB將會有很大的差異。編譯時是否需要使用一些標誌?
我該如何避免這種情況?我有一個非常簡單的C++程序編譯在Ubuntu的盒子上。當我將其移動到Red Hat和嘗試執行它,我得到一個錯誤這樣的:在不同機器上使用二進制文件時共享對象錯誤
cannot find shared object stdlibc++5.so
怎樣的商業軟件解決此得到的,安裝在用戶機器上的STDLIB將會有很大的差異。編譯時是否需要使用一些標誌?
我認爲你需要,因爲再次重新編譯:
因此,請檢查您是否能夠編譯您的C++代碼(可能是hello world)並再次編譯您的代碼。
可能有多種原因,對於你所知道的, 目標機可能沒有安裝g ++及其庫。唯一的 真正的解決方案是靜態鏈接標準C++庫,使用 -static-libstdc++
選項。
商業軟件必須提供多個二進制文件,這些二進制文件與受支持的發行版中的C和C++庫的主流版本鏈接。你*可以*靜態鏈接,但這相當不雅。 –