LDFLAGS - не могу убрать --as-needed
dmitry_kozak 25 декабря, 2011 - 21:47
Написал в make.conf строку LDFLAGS="-Wl,-O1" и то-же самое в /usr/portage/profiles/default/linux/make.defaults
компилирую прогу с помощью cmake а он все равно где-то берет опцию --as-needed. В CmakeLists.txt написано так:
set (CMAKE_EXE_LINKER_FLAGS " ${CMAKE_EXE_LINKER_FLAGS} ${MYSQL_LIBS} -lxerces-c")
Как еще убрать --as-needed ?
»
- Для комментирования войдите или зарегистрируйтесь
a зачем ?
a зачем ?
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
.
Добавить -Wl,--no-as-needed, но зачем?? Ещё сюда загляните
Мы тоже не всего читали Шнитке!.. © В. Вишневский
Spoiler написал(а): но
та у меня прога самописная (не мною) , не линкуется с этим параметром. ругается на boost
.
А бывают несамописные? :-) То, что не вами - осложнение серьёзное, но как по мне - линковку ухудшать в последнюю очередь, хотя boost, действительно, не тривиальные либы...
Мы тоже не всего читали Шнитке!.. © В. Вишневский
Почитал по ссылке, добавил
Почитал по ссылке, добавил export LDFLAGS="$LDFLAGS -Wl,--no-as-needed" прям перед cmake. Результат тот-же, пишет, что линковщику использует флаг --as-needed.
блин, где он его берет ??
.
В Makefile (или что там у вас вместо него)?
Мы тоже не всего читали Шнитке!.. © В. Вишневский
Spoiler
нет там ничего. У меня cmake.
.
Ну есть же где-то первичное присваивание переменной CMAKE_EXE_LINKER_FLAGS, коль скоро используется set (CMAKE_EXE_LINKER_FLAGS " ${CMAKE_EXE_LINKER_FLAGS} ${MYSQL_LIBS} -lxerces-c")... Смотрите ваш CmakeLists.txt пошагово, возможно найдёте или источник или каталог источников (каталог сорцов - в первую очередь) для присваивания. И не могу не согласиться с постом камрада mastepaner - не надо "бороться со спиртным, уничтожая его путём выпивания", лучше разобраться, почему boost не прикручивается...
Мы тоже не всего читали Шнитке!.. © В. Вишневский
Неужели никто не знает ??
Неужели никто не знает ??
(*)
Вы сказали "не линкуется с этим параметром. ругается на boost". Если бы вы подробнее рассказали, кто-нибудь смог бы подсказать, что надо сделать, чтобы оно слинковалось. И не ругалось на boost. А --as-needed не надо убирать.
http://blog.flameeyes.eu/2008/11/20/misguided-link-and-as-needed
http://blog.flameeyes.eu/2010/06/21/enabling-as-needed-whose-task-is-it
mastepaner написал(а):Вы
Подробнее:
profile Desctop
без --as-needed прога собирается. На старой сборке gentoo все ок. На свежей так:
cmake .
make
*******************CMAKE_EXE_LINKER_FLAGS: -Wl,-O1 -Wl,--as-needed -rdynamic -L/usr/lib/mysql -lmysqlclient -L/usr//lib -lz -lcrypt -lnsl -lm -L/usr/lib/ -lssl -lcrypto -lxerces-c
-- Configuring done
-- Generating done
-- Build files have been written to: /opt/dev/v2/build
читаем FAQ и юзаем wgetpaste
../alfabox-lib/libalfabox-lib.a(xml.cpp.o):(.gcc_except_table+0x12c): undefined reference to `typeinfo for xercesc_2_8::DOMException'
../alfabox-lib/libalfabox-lib.a(xml.cpp.o):(.gcc_except_table+0x130): undefined reference to `typeinfo for xercesc_2_8::XMLException'
collect2: выполнение ld завершилось с кодом возврата 1
make[2]: *** [alfabox-core/alfabox2-core] Ошибка 1
make[1]: *** [alfabox-core/CMakeFiles/alfabox2-core.dir/all] Ошибка 2
make: *** [all] Ошибка 2
(*)
Пусть более опытные товарищи меня поправят (и, желательно, дополнят):
1) Читали ли вы ссылки что я привёл?
2) Использовали ли scanelf для поискать той библиотеки, в которой определены `pthread_key_create', `pthread_getspecific' и прочее?
3) После cmake . но ПЕРЕД выполнением make смотрели ли вы в Mаkefile чтобы увидеть, с какими библиотеками вы линкуетесь и есть ли среди них те, что найдены scanelf?
mastepaner написал(а): Пусть
1) нет. иду читать ...
2) scanelf ? ща погуглю, что же это такое ;)
3) сначала п.2)
CMAKE_EXE_LINKER_FLAGS:
CMAKE_EXE_LINKER_FLAGS: -Wl,-O1 -Wl,--as-needed -rdynamic -L/usr/lib/mysql -lmysqlclient -L/usr//lib -lz -lcrypt -lnsl -lm -L/usr/lib/ -lssl -lcrypto -lxerces-c
И в каком месте тут должна быть линковка с boost? Где банальный хотя бы
-lboost_system-mt
? Не говоря о том, что линкер жалуется не только на буст, но и на нехватку -pthread?Разберитесь сначала в своей билд-системе, Gentoo вам все правильно на ошибки тычет.
Не грусти, товарищ! Всё хорошо, beautiful good!
winterheart
Я не сомневаюсь, что генту все правильно тычет. Беда в том, что я не программист, и погружаться в билд-систему (cmake) на данный момент тупо некогда. Хотелось бы как-то убрать --as-needed флаг, запустить, чтоб все работало, а потом спокойно разобраться с cmake-ом и сделать грамотно.
CMakeLists.txt покажи.
CMakeLists.txt покажи.
Не грусти, товарищ! Всё хорошо, beautiful good!
У тебя есть 2 выхода :)
У тебя есть 2 выхода :)
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)