今天在solaris系统下,编译运行一个程序,总是遇到:
ld.so.1: test: fatal: libstdc++.so.6: open failed: No such file or directory.
通过find命令: find / -name libstdc++.so.6 -print 发现 libstdc++.so.6这个包有在路径 /usr/local/lib 下,
然后运行export命令,发现LD_LIBRARY_PATH居然没有定义,
于是,通过 export LD_LIBRARY_PATH=/usr/local/lib 可以设置搜索 libstdc++.so.6的路径,
再次运行程序,程序运行正常!不过,这个解决方案是在Solaris 9和GCC 3.4.6的环境下可以work。
在SOlaris10的环境下,需要编辑 /etc/profile 添加两行:
LD_LIBRARY_PATH=/usr/local/lib
export LD_LIBRARY_PATH
再看看CentOS系统,libstdc++.so.6 在 /usr/lib/ 路径下,不用特殊指定,可以自动找到。
真不知,为何Solaris 与CentOS 做得这么不同?