В моей системе установлены две версии GCC 4.6.2 и 4.7.0.Я использую Fedora Core 16.
4.6.2 установлен в /usr/bin
, а 4.7.0 установлен в /home/nerozehl/local/bin
.Библиотеки и среда выполнения для C ++ также скомпилированы и установлены в /home/nerozehl/local/lib
и /home/nerozehl/local/lib64
.
. У меня также установлены две версии Boost с библиотеками в /usr/lib64
и /home/nerozehl/local/lib
.(Повышение 1.47.0 и 1.49.0 соответственно)
Проблема, с которой я столкнулся, заключается в том, что g ++ / ld связываются с библиотеками по умолчанию, а не с новыми в /home/nerozehl/local
.Я использую configure
для генерации Make-файлов и называю это так:
CXX=g++47 CXXFLAGS="-g -O0 -pg" LDFLAGS="-L/home/nerozehl/local/lib" ./configure --prefix=/home/nerozehl/local
Где g++47
находится в /home/nerozehl/local/bin
(в моем $PATH
).
Когда я компилирую, все в порядке, и используются более новые заголовки, но когда я проверяю, с чем это было связано:
ldd source/noes
linux-vdso.so.1 => (0x00007fffebfff000)
libboost_filesystem-mt.so.1.47.0 => /usr/lib64/libboost_filesystem-mt.so.1.47.0 (0x0000003c6a800000)
libboost_system-mt.so.1.47.0 => /usr/lib64/libboost_system-mt.so.1.47.0 (0x0000003c6a400000)
libboost_program_options-mt.so.1.47.0 => /usr/lib64/libboost_program_options-mt.so.1.47.0 (0x0000003c6ac00000)
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x0000003c6dc00000)
libm.so.6 => /lib64/libm.so.6 (0x0000003c68c00000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x0000003c69c00000)
libc.so.6 => /lib64/libc.so.6 (0x0000003c68800000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003c69000000)
librt.so.1 => /lib64/librt.so.1 (0x0000003c69800000)
/lib64/ld-linux-x86-64.so.2 (0x0000003c68400000)
Для жизни я не могу понять, как заставить g ++ /ld / configure для использования моих новых библиотек.Любая помощь будет оценена.