Модераторы: xvr
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> undefined reference to `__assert_fail' 
V
    Опции темы
marcusmae
Дата 11.7.2008, 23:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


stravaganza
**


Профиль
Группа: Участник
Сообщений: 874
Регистрация: 26.3.2006

Репутация: нет
Всего: 39



Здравствуйте,

Извините, если глупый вопрос... Я знаю, что сабж живёт в glibc, но не знаю, как его подключить smile  Какую опцию нужно указать?

Спасибо.


--------------------
ἀπὸ μηχανῆς θεός
PM MAIL ICQ GTalk   Вверх
bsa
Дата 11.7.2008, 23:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 16
Всего: 196



marcusmae, glibc не надо подключать (ну если очень хочется - параметр -lc), так как подключается по умолчанию.
Ты случаем левых параметров (типа -nostdlib и -nodefaultlibs) не использовал?
PM   Вверх
marcusmae
Дата 11.7.2008, 23:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


stravaganza
**


Профиль
Группа: Участник
Сообщений: 874
Регистрация: 26.3.2006

Репутация: нет
Всего: 39



Код

/usr/bin/ccache /opt/cell/toolchain/bin/spu-g++        -W -Wall -Winline -Wno-main  -I. -I../../ -I../../../Common -I../..
/../NumericalFramework -I../../../Transport -I/usr/include -I/opt/cell/sysroot/usr/include  -I /opt/cell/sysroot/usr/spu/include -I /opt/cell
/sysroot/opt/cell/sdk/usr/spu/include  -O3 --param max-unroll-times=1 -fno-exceptions -fno-rtti -c TestingUnitSPE.cpp


и

Код

/usr/bin/ccache /opt/cell/toolchain/bin/spu-g++ -o TestingUnitSPE  TestingUnitSPE.o      -L/opt/cell/sysroot/usr/spu/lib -L/opt
/cell/sysroot/opt/cell/sdk/usr/spu/lib -Wl,-N


-lc не помогает


Это сообщение отредактировал(а) marcusmae - 11.7.2008, 23:43


--------------------
ἀπὸ μηχανῆς θεός
PM MAIL ICQ GTalk   Вверх
JackYF
Дата 12.7.2008, 02:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 3
Всего: 162



Несоблюдение версий библиотек?


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
marcusmae
Дата 12.7.2008, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


stravaganza
**


Профиль
Группа: Участник
Сообщений: 874
Регистрация: 26.3.2006

Репутация: нет
Всего: 39



Цитата(JackYF @  12.7.2008,  02:07 Найти цитируемый пост)
Несоблюдение версий библиотек?


JackYF, что имеется в виду? 32/64-битность?


--------------------
ἀπὸ μηχανῆς θεός
PM MAIL ICQ GTalk   Вверх
JackYF
Дата 12.7.2008, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 3
Всего: 162



marcusmae, нет. Я имел в виду разных набор инклюдов, да и компилятор у тебя нестандартный (сужу по пути).


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
marcusmae
Дата 12.7.2008, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


stravaganza
**


Профиль
Группа: Участник
Сообщений: 874
Регистрация: 26.3.2006

Репутация: нет
Всего: 39



JackYF, хорошо, я умею проверять, какой хедер используется при компиляции. А как узнать, из какой библиотеки берётся __asser_fail при линковании?


--------------------
ἀπὸ μηχανῆς θεός
PM MAIL ICQ GTalk   Вверх
JackYF
Дата 13.7.2008, 00:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 3
Всего: 162



Цитата(marcusmae @  12.7.2008,  14:33 Найти цитируемый пост)
А как узнать, из какой библиотеки берётся __asser_fail при линковании? 

этого я не знаю smile по идее линкер должен сам всё разрулить smile


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
marcusmae
Дата 13.7.2008, 01:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


stravaganza
**


Профиль
Группа: Участник
Сообщений: 874
Регистрация: 26.3.2006

Репутация: нет
Всего: 39



Мда, ну вот если ему подсовывать __assert.o или libc.a - не есть, говорит wrong format. Попробовать, может, присоединить исходник?..


--------------------
ἀπὸ μηχανῆς θεός
PM MAIL ICQ GTalk   Вверх
Torsten
Дата 13.7.2008, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 174
Регистрация: 10.6.2008
Где: Pskov

Репутация: нет
Всего: 7



marcusmae, 
Цитата(marcusmae @  12.7.2008,  15:33 Найти цитируемый пост)
JackYF, хорошо, я умею проверять, какой хедер используется при компиляции. А как узнать, из какой библиотеки берётся __asser_fail при линковании?

Какая первая указана в путях к LIB - от той и берется. 
--------------------
We have no begining, we have no end. We are infinite.
PM MAIL   Вверх
xvr
Дата 14.7.2008, 11:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 20
Всего: 223



Цитата(marcusmae @ 11.7.2008,  23:37)
Код

/usr/bin/ccache /opt/cell/toolchain/bin/spu-g++        -W -Wall -Winline -Wno-main  -I. -I../../ -I../../../Common -I../..
/../NumericalFramework -I../../../Transport -I/usr/include -I/opt/cell/sysroot/usr/include  -I /opt/cell/sysroot/usr/spu/include -I /opt/cell
/sysroot/opt/cell/sdk/usr/spu/include  -O3 --param max-unroll-times=1 -fno-exceptions -fno-rtti -c TestingUnitSPE.cpp


и

Код

/usr/bin/ccache /opt/cell/toolchain/bin/spu-g++ -o TestingUnitSPE  TestingUnitSPE.o      -L/opt/cell/sysroot/usr/spu/lib -L/opt
/cell/sysroot/opt/cell/sdk/usr/spu/lib -Wl,-N


-lc не помогает

Судя по преффиксу это gcc для граф. сопроцессоров NVidia? (CUDA) У меня есть большие сомнения, что ей есть куда выводить сообщение из __asser_fail, равно как и сделать после этого abort  smile Так что вполне возможно реализации этого в libc просто нет, за бессмысленностью   smile Так что выхода 2:
  •  Написать свою функцию  __asser_fail (вот только что она должна делать для SPU?)
  •  Поставить при компиляции -DNDEBUG, все assert'ы отключатся

PM MAIL   Вверх
bsa
Дата 14.7.2008, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 16
Всего: 196



Подозреваю, что подключаются заголовочные файлы стандартной glibc.
PM   Вверх
xvr
Дата 14.7.2008, 19:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 20
Всего: 223



Цитата(bsa @ 14.7.2008,  13:09)
Подозреваю, что подключаются заголовочные файлы стандартной glibc.

Кстати, очень возможно. В таких случаях рекомендуется в строку запуска компилятора добавить опцию -M и внимательно изучить вывод, если там будут фигурировать файлы из стандартных директорий хоста то что-то не так в Датском королевстве ...

PM MAIL   Вверх
marcusmae
Дата 20.7.2008, 10:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


stravaganza
**


Профиль
Группа: Участник
Сообщений: 874
Регистрация: 26.3.2006

Репутация: нет
Всего: 39



Цитата(xvr @  14.7.2008,  11:41 Найти цитируемый пост)
Судя по преффиксу это gcc для граф. сопроцессоров NVidia? (CUDA)


Ну вроде того : Cell Broadband Engine.

Цитата(bsa @  14.7.2008,  13:09 Найти цитируемый пост)
Подозреваю, что подключаются заголовочные файлы стандартной glibc.


Как мне объяснили,

Цитата

Код, который компилируется на spu не линкуется с glibc напрямую. Для glibc функций существуют callback, но не для всех функций. IBM в каждой новой версии SDK добавляет новые callback.


Цитата(xvr @  14.7.2008,  11:41 Найти цитируемый пост)
У меня есть большие сомнения, что ей есть куда выводить сообщение из __asser_fail, равно как и сделать после этого abort   Так что вполне возможно реализации этого в libc просто нет, за бессмысленностью


Примечательно, что assert не могут делать именно сопроцессоры, а на основном проце всё прекрасно работает. В то же время отладочная печать поддерживается всюду (проблемы с выводом нет).

Тему закрою - собственная реализация assert так или иначе решает проблему.



--------------------
ἀπὸ μηχανῆς θεός
PM MAIL ICQ GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Программирование под Unix/Linux"
xvr
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой "Код".
  • Вопросы мобильной разработки тут
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема »


 




[ Время генерации скрипта: 0.0561 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.