[РЕШЕНО]Компилятор ищет пути библиотек не там, куда я ему указал

в общем имеется арч, собираемая прога
вывод процесса компиляции:
`--> LC_ALL=C make -f makefile.unix BDB_INCLUDE_PATH=/usr/include/db4.8 OPENSSL_INCLUDE_PATH=/usr/include/openssl-1.0 OPENSSL_LIB_PATH=/usr/lib/openssl-1.0 CC=gcc-4.3 CXX=g++-4.3 BOOST_INCLUDE_PATH=/usr/include/boost37/boost BOOST_LIB_PATH=/usr/lib/boost37 BDB_LIB_SUFFIX="-4.8" USE_UPNP= -j5
/bin/sh ../share/genbuild.sh obj/build.h
g++-4.3 -O2 -pthread -Wall -Wextra -Wformat -Wformat-security -Wno-unused-parameter -g -DBOOST_SPIRIT_THREADSAFE -D_FILE_OFFSET_BITS=64 -I/home/safff/git/cannabiscoin420/src -I/home/safff/git/cannabiscoin420/src/obj -I/usr/include/boost37/boost -I/usr/include/db4.8 -I/usr/include/openssl-1.0 -DUSE_IPV6=1 -I/home/safff/git/cannabiscoin420/src/leveldb/include -I/home/safff/git/cannabiscoin420/src/leveldb/helpers -DHAVE_BUILD_INFO -fno-stack-protector -fstack-protector-all -Wstack-protector -D_FORTIFY_SOURCE=2  -o CannabisCoind leveldb/libleveldb.a obj/alert.o obj/version.o obj/checkpoints.o obj/netbase.o obj/addrman.o obj/crypter.o obj/key.o obj/db.o obj/init.o obj/keystore.o obj/main.o obj/net.o obj/protocol.o obj/bitcoinrpc.o obj/rpcdump.o obj/rpcnet.o obj/rpcmining.o obj/rpcwallet.o obj/rpcblockchain.o obj/rpcrawtransaction.o obj/script.o obj/sync.o obj/util.o obj/wallet.o obj/walletdb.o obj/hash.o obj/bloom.o obj/noui.o obj/leveldb.o obj/txdb.o obj/cubehash.o obj/luffa.o obj/aes_helper.o obj/echo.o obj/shavite.o obj/simd.o obj/blake.o obj/bmw.o obj/groestl.o obj/jh.o obj/keccak.o obj/skein.o obj/checkpointsync.o -Wl,-z,relro -Wl,-z,now  -L/usr/lib/boost37 -L/usr/lib/openssl-1.0 -Wl,-Bdynamic -l boost_system -l boost_filesystem -l boost_program_options -l boost_thread -l db_cxx-4.8 -l ssl -l crypto -Wl,-Bdynamic -l z -l dl -l pthread /home/safff/git/cannabiscoin420/src/leveldb/libleveldb.a /home/safff/git/cannabiscoin420/src/leveldb/libmemenv.a
/usr/bin/ld: obj/alert.o: undefined reference to symbol 'boost::system::system_category()'
/usr/lib/libboost_system.so.1.64.0: error adding symbols: DSO missing from command line
collect2: ld returned 1 exit status
make: *** [makefile.unix:186: CannabisCoind] Error 1
интересует именно строка
/usr/lib/libboost_system.so.1.64.0: error adding symbols: DSO missing from command line
в которой видно откуда берет линкуемую либу компилятор, но ведь насильно указана либа boost37
BOOST_LIB_PATH=/usr/lib/boost37
почему он не линкует из ентого пути и как его все же уговорить енто делать?
safocl
в которой видно откуда берет линкуемую либу компилятор, но ведь насильно указана либа boost37
BOOST_LIB_PATH=/usr/lib/boost37

попробуйте export BOOST_LIB_PATH=/usr/lib/boost37
slavutich
попробуйте export BOOST_LIB_PATH=/usr/lib/boost37
не, енто ничо не даст, просто export будет распространяться дальше на сессию, а такое указание параметра будет тока на данную команду распространяться
safocl
почему он не линкует из ентого пути и как его все же уговорить енто делать?
Насколько я понимаю, логи
safocl
/usr/bin/ld: obj/alert.o: undefined reference to symbol 'boost::system::system_category()'
/usr/lib/libboost_system.so.1.64.0: error adding symbols: DSO missing from command line
говорят о том, что это ошибка DSO и причина не в твоей библиотеке, а, предположу, в отсутствии зависимостей/библиотек boost::system и железная голова намекает добавить в командную строку эти зависимости.
Boost не знаю и что там за библиотеки то же не знаю. Советую погуглить по этим ошибкам.

PS ... По этим ошибкам сразу же вышел на это и это
В подробности не вдавался, а поэтому могу и ошибаться, но, как понял, нужно похоже добавить опцию/флаг -lboost_system.
Советую еще погуглить по этим строкам для получения большей информации и уточнения причины.
Ошибки не исчезают с опытом - они просто умнеют
vasek
нужно похоже добавить опцию/флаг -lboost_system.
так оно есть в мейкфайле...
LIBS += \
 31  -Wl,-B$(LMODE) \
 32    -l boost_system$(BOOST_LIB_SUFFIX) \
 33    -l boost_filesystem$(BOOST_LIB_SUFFIX) \
 34    -l boost_program_options$(BOOST_LIB_SUFFIX) \
 35    -l boost_thread$(BOOST_LIB_SUFFIX) \
 36    -l db_cxx$(BDB_LIB_SUFFIX) \
 37    -l ssl \
 38    -l crypto
на 32 строке
safocl
почему он не линкует из ентого пути и как его все же уговорить енто делать?
Значит не знает ентого пути, точнее не знает (не понимает) твой BOOST_LIB_PATH
По идее за пути отвечает LD_LIBRARY_PATH и по дефолту это /lib, /usr/lib
Тебе видне, а другим только гадать — мы же тонкости не знаем.
Можно, например, потрейсить, на предмет - видится эта библиотека или нет?
UPD1 … и что то не соображу, есть ли связь с этой ошибкой и отсутствием этой библиотеки в кэше (ldconfig -p | grep ….)
UPD2 … и все-таки мне кажется нужно копнуть глубже этот вывод
safocl
/usr/bin/ld: obj/alert.o: undefined reference to symbol 'boost::system::system_category()'
Ошибки не исчезают с опытом - они просто умнеют
vasek
UPD2 … и все-таки мне кажется нужно копнуть глубже этот вывод
safocl
/usr/bin/ld: obj/alert.o: undefined reference to symbol 'boost::system::system_category()'
так он ентот вывод и дает потому чо берет линк с либой не той версии
safocl
так он ентот вывод и дает потому чо берет линк с либой не той версии
Ты в этом уверен на все 100 ???
Ошибки не исчезают с опытом - они просто умнеют
safocl, а не проще сделать свою библиотеку, точнее превратить эту либу в статическую?
PS ... заодно и проверится - а в этой ли библиотеке затык.
PSS ... и я бы потрейсил, чтобы точно узнать - находится эта библиотека или нет.
Ошибки не исчезают с опытом - они просто умнеют
vasek
а не проще сделать свою библиотеку, точнее превратить эту либу в статическую?
а енто как?

vasek
Ты в этом уверен на все 100 ???
ну на все 100 нет, но с актуальной версией ента прога не собирается...
 
Зарегистрироваться или войдите чтобы оставить сообщение.