GCC Не связываются правильные библиотеки

В моей системе установлены две версии 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 . (Boost 1.47.0 и 1.49.0, соответственно)

Проблема, с которой я столкнулся, заключается в том, что g ++ / ld связывается с библиотеками по умолчанию, а не с более новыми в / home / nerozehl / local . Я использую configure для создания файлов Makefile и вызываю его так:

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 использовать мои новые библиотеки. Любая помощь будет оценена по достоинству.

9
задан nerozehl 3 March 2012 в 20:02
поделиться