混合C++/Free Pascal程序,Linux。我曾經在一個32位的Debian盒子上構建它,並在64位的CentOS 5.3服務器上運行它,並且它工作正常。現在我已經將我的Debian盒升級到了6.0.3(Squeeze)。接下來的重建後,程序不會在服務器主機上運行了,而不是打印如下:升級的生成機器(Debian),生成不能在服務器上運行(CentOS)
myapp: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by myapp)
myapp: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by myapp)
現在,當我運行ls -l /usr/lib/libstdc++*
,我注意到,在開發框libstdc++.so.6
是一個符號鏈接libstdc++.so.6.0.13
,而在主機上它是libstdc++.so.6.0.8
的符號鏈接。這可能是罪魁禍首。
您能提出一個故障排除策略嗎?我是否應該在開發箱上放置早期版本的libstdC++並嘗試鏈接它,或嘗試升級prod盒?
爲什麼不在新機器上重建呢? – wallyk
無法將編譯器置於公共Web主機上。 –
儘管可以加載所有庫並製作使用正確版本的版本,但最簡單的過程是創建一個與生產機器相同風格(分佈和32/64位)和版本的開發機器。如果缺少硬件,它可能是現有構建機器上的虛擬機。 – wallyk