在ubuntu10.10的lampp下搭建北大的tse 出现ibgcc_s.so.1: version `GCC_4.2.0' not found(required by libstdc++.so.6

开始很顺利,一切OK,但后来出现了错误,是在运行对应的CGI TSESearch时出现的,查看日志,发现下面的信息


Sat Aug 04 15:42:45.305205 2012] [cgi:error] [pid 2543] [client 127.0.0.1:52481] AH01215: /home/mty/myindex/yc-cgi-bin/index/TSESearch: /opt/lampp/lib/libgcc_s.so.1: version `GCC_4.2.0' not found (required by /usr/lib/libstdc++.so.6), referer: http://localhost/public_html/

[Sat Aug 04 15:42:45.305268 2012] [cgi:error] [pid 2543] [client 127.0.0.1:52481] End of script output before headers: TSESearch, referer: http://localhost/public_html/

认真的读了一下,发现是

libstdc++.so.6需要libgcc_s.so.1支持GCC——4.2.0

而我查看了一下LAMPP提供的libgcc_s.so.1支持什么

运行命令strings libgcc_s.so.1 |grep GCC_

发现最高才到3.4,和4.2.0几乎差了一个版本。这是为什么?因为LAMPP给你提供了它觉得你支持你的CGI的版本,而我的GUN GCC是4.4.0版本 它至少需要4.2.0的libgcc_s.so.1,其实本身gcc在/lib目录下会提供一个libgcc_s.so.1,但这个是运行GCC命令时的,然后我把lib下的COPY过去,一运行就可以。



总结:该错误不仅适用于LAMPP搭建TSE   适合一切出现libstdc++.so.6需要libgcc_s.so.1高版本的情况,一般出现这种原因很可能是你的程序自己带了一个libgcc_s.so.1  而程序带的又无法和你装的GUN GCC匹配。。所以你需要做的就是把GCC自己的LIBGCC——S。SO。1替换程序的,就OK了。



你可能感兴趣的:(在ubuntu10.10的lampp下搭建北大的tse 出现ibgcc_s.so.1: version `GCC_4.2.0' not found(required by libstdc++.so.6)