我剛剛在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) –