我刚刚在Ubuntu 14.04上构建了GCC 5.1,默认情况下gcc为4.8。当我尝试使用它构建东西时,我发现ld
将使用默认的libstdC++而不是新构建的。 这里是输出:如何在自己构建GCC之后配置共享库搜索路径?
[email protected] ~/test
$ g++ hello.cpp
[email protected] ~/test
$ ldd a.out
linux-vdso.so.1 => (0x00007ffde0d25000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fa181ad2000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fa1817cc000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fa1815b5000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fa1811f0000)
/lib64/ld-linux-x86-64.so.2 (0x00007fa181dfd000)
如果我用$ export LD_LIBRARY_PATH=/usr/local/lib64/
,它会找到合适的人。
[email protected] ~/test
$ ldd a.out
linux-vdso.so.1 => (0x00007fffeeaf5000)
libstdc++.so.6 => /usr/local/lib64/libstdc++.so.6 (0x00007f4583d92000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f4583a67000)
libgcc_s.so.1 => /usr/local/lib64/libgcc_s.so.1 (0x00007f4583850000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f458348b000)
/lib64/ld-linux-x86-64.so.2 (0x00007f458410e000)
我想知道该怎么做才能使其正确?由于我知道设置LD_LIBRARY_PATH并不是最佳选择。
在/etc/ld.so.conf.d/下,有一些conf文件属于默认的gcc,我应该自己写一个gcc 5.1吗?或者我应该编辑现有的?或者是什么? –
你在哪里安装gcc-5.1?我的意思是'--prefix'选项。 –
为什么LD_LIBRARY_PATH不是最佳选择?无论如何,你还应该确保指向更新的包含路径(例如通过设置CPLUS_INCLUDE_PATH) –