1
我有一個程序,我在機器A上使用CMake進行編譯,但我想在舊機器上運行它B.當我這樣做時,我得到以下內容:試圖在舊機器上使用新的libstdC++導致錯誤
/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by ./program)
/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by ./program)
/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by ./program)
我看到this question,我想解決我的問題。將複製新版本到機器B.所以我複製從A到~/lib
第B /usr/lib/libstdc++.so.6
(和libstdc++.so.6.0.14
),並做了
export LD_LIBRARY_PATH=~/lib:$LD_LIBRARY_PATH
的最佳方式之後的
。當我開始我的程序時,我現在得到
Floating point exception
我能做些什麼來使它工作?
我知道這很糟糕,並不是你想聽到的,但是如果你需要在老版本的glibc/libstdC++上運行代碼,請在系統上編譯你需要的最舊版本的代碼。舊的庫和新的編譯器不兼容,在Linux上替換或取代libc/libstdC++大多數時候會讓你後退。 – rubenvb