LINUX.ORG.RU

GCC undefined reference


0

0

Есть куча объектников но при их сборке компилер ругается на экспортируемые каждым объектником функции, при этом другими компиляторами вроде borland этот код собирается нормально. Такое впечатление что компилятор не ищет соответстия функциям в разных объектниках. Все собираю в один файл. Если пробовать делать либы то он их съедает но рождает конечный файл который содержит ссылки на либы что тупо. (.rodata+0x6c): undefined reference to `SysKeyboardHandler'


Ответ на: комментарий от cvv

>ну и где видно что у тебя есть ф-я 'SysOutLine'?

>повнимательней посмотри.

>посмотрел? ещё раз посмотри.

Если ты имеешь в виду отсуствие "_", то это вряд ли.

c032.o:(.text+0x95): undefined reference to `_SysInterruptMask'

c032.o:(.text+0xbc): undefined reference to `_SysTimerInit'

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

я думаю что ему надо выключить генерацию underscore при компиляции сишных файлов или подописывать руками в асмовых. второй вариант идеологически более правильный

SysTimerInit, _SysTimerInit, __SysTimerInit, ___SysTimerInit - с точки зрения линкера - четыре совершенно разные ф-и

cvv ★★★★★
()
Ответ на: комментарий от NoName

>наоборот. для сишных по дефолту я так понял выключены подчеркивания. А как их включить?

не видел ни обдного компилера с выключенными по дефолту.

лучше при помощи #define в асмовых сырцах напиши чё нить типа

#define func _func

по крайней мере некоторые именно так решают проблему

cvv ★★★★★
()
Ответ на: комментарий от cvv

проблема была действительно в подчеркивании. Сейчас все собралось. Всем огромное спасибо.

NoName
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.