- Eclipse, ошибка undefined reference to main
- GCC undefined reference
- Re: GCC undefined reference
- Re: GCC undefined reference
- Re: GCC undefined reference
- Re: GCC undefined reference
- Re: GCC undefined reference
- Re: GCC undefined reference
- Re: GCC undefined reference
- Re: GCC undefined reference
- Re: GCC undefined reference
- Re: GCC undefined reference
- Re: GCC undefined reference
- Re: GCC undefined reference
- Re: GCC undefined reference
- Re: GCC undefined reference
- Re: GCC undefined reference
- Re: GCC undefined reference
- Re: GCC undefined reference
- Re: GCC undefined reference
- Re: GCC undefined reference
- Re: GCC undefined reference
- Re: GCC undefined reference
- Re: GCC undefined reference
- Ошибка при компилировании undefined reference to?
Eclipse, ошибка undefined reference to main
Ошибка компоновщика Undefined reference
Я решил написать небольшую ОС, т.к. интересно, как они работают. Нашел туториал на wiki.osdev.org.
Ошибка: undefined reference to `log’
Всю свою недолгую жизнь я компилировал программы и не встречал таких ошибок. Возьмем самый.
Ошибка undefined reference to `sqrt’
#include #include #include #include int main().
Изменение цвета текста и фона. Ошибка undefined reference to ‘textbackground’
Ниже собственно код. При компиляции выдает ошибку undefined reference to ‘textbackground’. Пишу.
у вас return нету. Даже в 3 трех строчках касяк) Программисты все такие самоуверенные всегда, эх.
Я не программист, я пока ещё только учусь. Причём С — самостоятельно и относительно недавно.
Makefile из /%projectname%/Debug?
Если да, то вот:
чего не скажешь о return()
Добавлено через 4 минуты
раньше юзал kdevelop, так как она была стабильна в плане настроек, но потом они исключили проекты C
настроить можно, но не так легко, как раньше
писать в блокноте (с подсветкой), создавая make-файлы вручную — быстрее, чем делать то же самое в eclipse
Добавлено через 1 минуту
return не обязателен в main(), так как в C99 она неявно возвращает 0
если же в C89 не поставить return, то будет возвращаться случайное значение (которое в системе может быть воспринято как признак сбойного завершения программы)
Добавлено через 3 минуты
emacs — совсем не обычный текстовый редактор, на его освоение уйдёт много времени, как и на vim
Добавлено через 21 минуту
ещё по поводу eclipse:
я один раз сидел около часа, пытаясь найти ошибку в программе на C, потому что программа работала, но что-то не выводила (во встроенную консоль eclipse)
а потом оказалось, что программа на самом деле падала где-то в середине с Segmentation fault, а не выполнялась успешно до конца, что показывала эта встроенная консоль
и ещё много всяких там подобных моментов было, на которые ушло много времени впустую
Источник
GCC undefined reference
Есть куча объектников но при их сборке компилер ругается на экспортируемые каждым объектником функции, при этом другими компиляторами вроде borland этот код собирается нормально. Такое впечатление что компилятор не ищет соответстия функциям в разных объектниках. Все собираю в один файл. Если пробовать делать либы то он их съедает но рождает конечный файл который содержит ссылки на либы что тупо. (.rodata+0x6c): undefined reference to `SysKeyboardHandler’
Re: GCC undefined reference
без маленького примера который бы выдавал подобные ошибки вряд ли вы получите ответ.
Re: GCC undefined reference
А лучше и не маленького примера, а солидного, демонстрирующего проблему во всей полноте.
Re: GCC undefined reference
есть допустим пара объектников 1 и 2. Первый экспортирует функцию из второго как extern void obj_1_func(void); Во втором определена эта функция. Если собирать сначала второй а потом первый то он не види функцию. А у меня объектники все друг на друге завязаны и нету «начала цепочки».
Re: GCC undefined reference
ошибся, сначала первый потом второй
Re: GCC undefined reference
> есть допустим пара объектников 1 и 2. Первый экспортирует функцию из второго как extern void obj_1_func(void);
Как всё запутано. Наверное, ты хотел написать «импотрирует из второго». Но что в этом контексте означает «собирать второй, а потом первый»? У тебя кто вообще выдает ошибки — компилятор или линковщик? Не пытайся сам сформулировать проблему, у тебя не получается. Запости команды и сообщения об ошибках.
Re: GCC undefined reference
gcc все съедает. Когда я скармливаю все объектники линковщику ld возникает эта проблема. Т.е. когда он видит файл импортирующий функцию он пишет что такой функции нет хотя она в другом объектнике.
Re: GCC undefined reference
c032.o:(.text+0x95): undefined reference to `_SysInterruptMask’ c032.o:(.text+0xbc): undefined reference to `_SysTimerInit’ c032.o:(.text+0xc1): undefined reference to `_SysKeyboardDriverInit’ c032.o:(.text+0xef): undefined reference to `_SysPrepTasks’ c032.o:(.text+0x135): undefined reference to `_SysPrepGdt’ c032.o:(.text+0x19f): undefined reference to `_SysVectInit’
Re: GCC undefined reference
undefined reference — обычно выдает линковщик. => попробуй сгенерить отдельные объектники (gcc -c myfile.c -o myfile.o), а потом их все слинковать(gcc myfile1.o myfile2.o myfile3.o -o all_my_files).
Можно так-же компилить все взаимозависимые файлы одной коммандой.
gcc myfile1.c myfile2.c myfile3.c -o all_my_files
Re: GCC undefined reference
>gcc myfile1.o myfile2.o myfile3.o -o all_my_files он вызывает ld и получается тоже самое
Re: GCC undefined reference
Re: GCC undefined reference
_SysInterruptMask, _SysKeyboardDriverInit. — твои или библиотечные функции?
Re: GCC undefined reference
Sozdayte lib`u so wsemi nugnimi funkcijami/procedurami/moduljami
zatem linkuyte s etoy liboy.
gcc program.c -LPATH_TO_YOUR_LIB -lname_of_your_lib
P.s. esli zabili kak lib`ui sdelat`:
ar cr name_of_your_lib.a object_1.o . object_n.o
P.s.s.
naprimer, tri fayla w proekte (1.c 2.c 3.c) w kotorix washi funkcii sobiraem w lib`u
gcc -c 1.c
gcc -c 2.c
gcc -c 3.c
ar cr libsimple.a 1.o 2.o 3.o
zatem kompilliruem programmu, w kotoroy ispol`zujutsja washi funkcii opisannie w 1.c
gcc my_program.c -L./ -lsimple
Da, ls *.c
1.c
2.c
3.c
my_program.c
Inimi slowami, w tekushey direktorii.
Proshu izvinit` translit,
Vic.
Re: GCC undefined reference
gcc: -ltest.a: linker input file unused because linking not done
Re: GCC undefined reference
-l — опция линковки.
Re: GCC undefined reference
решается твой трабл путём двойного указания одного из обьектников типа:
gcc -o out out1.o out2.o out1.o
Re: GCC undefined reference
Ничего не получается 🙁 У меня 23 объектника и все друг на друге завязаны. Какой критерий выбора?
Re: GCC undefined reference
попробуй их последовательность указать два или более раз подряд
или сделай с них шаренную либу а там динамический линкер сам разберётся
Re: GCC undefined reference
и загони основной обтьём своих обьектников если не в динамическую то хоть в статическую либу. при таком количестве сильно упрощает жизнь
Re: GCC undefined reference
если линковать с либой то он съедает и создает конечный файл с размером около 300 байт в котором как то сделаны ссылки на либы. -static не помогает.
Re: GCC undefined reference
хех если сделать *.o он и map файл создает в котором пишет все функции хотя ругается что их нет.
Re: GCC undefined reference
или ты всё это вручную линкуеш? где тогда скриншоты?
Re: GCC undefined reference
DIR_INCLUDE =./INCLUDE KERN_INCLUDE =./Kern44/INCLUDE
INIT=./OSINIT/ KERNEL=./Kern44/ LIB=./LIB/ TOOLS=./TOOLS/ VERSION=./VERSION/
PARAMS = -c -O2 -I $(DIR_INCLUDE) CC = gcc $(PARAMS) OUTOSNAME=OS.elf LINK = ld —verbose -Map OS.map -o$(OUTOSNAME) —script ld.conf ASM = ./BIN/fasm
all: $(CC) -std=c99 $(INIT)*.c $(CC) $(INIT)asm/*.c $(ASM) $(INIT)asm/c032.asm ./c032.o $(ASM) $(INIT)asm/timer.asm ./timer.o $(ASM) $(INIT)asm/keyboard.asm ./keyboard.o $(ASM) $(INIT)asm/handles.asm ./handles.o $(ASM) $(INIT)asm/setirqs.asm ./setirqs.o $(ASM) $(INIT)asm/v86subrs.asm ./v86subrs.o $(ASM) $(INIT)asm/fpemu.asm ./fpemu.o # ar cr INIT.lib *.o # rm -f *.o
$(CC) -I $(KERN_INCLUDE) -std=c99 $(KERNEL)*.c $(CC) -I $(KERN_INCLUDE) $(KERNEL)asm/*.c # ar cr KERNEL.lib *.o # rm -f *.o
$(CC) -std=c99 $(LIB)*.c # ar cr LIB.lib *.o # rm -f *.o
$(CC) -std=c99 $(TOOLS)*.c $(ASM) $(TOOLS)sysout.asm ./sysout.o # ar cr TOOLS.lib *.o # rm -f *.o
$(CC) $(VERSION)*.c # ar cr VERSION.lib *.o # $(CC) tasks.c -L./ -llibos.a
# $(LINK) *.o tasks.o # $(LINK) -e SysTask00 *.lib # $(LINK) tasks.o # $(LINK) tasks.o OSROM.o OSRAM.o tasks.o \ #kernram.o kernrom.o disp.o dirvs.o subr.o thunks.o
# $(LINK) kernram.o kernrom.o disp.o dirvs.o subr.o thunks.o # $(LINK) c032.o setirqs.o keyboard.o timer.o handles.o v86subrs.o fpemu.o rm -f *.o debug: # $(CC) -S -std=c99 $(PARAMS) $(SRC_LIB)
rm -vf *.s rm -vf *.txt rm -vf *.map rm -vf *.lib rm -vf *.o rm -vf $(OUTOSNAME)
Источник
Ошибка при компилировании undefined reference to?
При компиляции вылетает указанная ниже ошибка. В чем может быть проблем? Linux
Часть кода
в шапке
- Вопрос задан более двух лет назад
- 5335 просмотров
тэг С++ относится к языку C++, то что у вас это Си.
то что вы компилируете этот код компилятором С++ не делает его кодом на С++.
даже extern C не делает.
При выполнение этого кода должен отправится POST запрос на IP адрес имеющегося оборудования с содержанием аудио файла в теле запроса.
Вот полный код программы:
Код был написан разработчиками оборудования, они утверждают, что он должен без проблем работать. В итоге были ошибки, я их исправил, но это не знаю как решить.
Евгений Шатунов, т.к в C++ я полный ноль, могу не понять некоторые вопросы.
Вообщем, как теперь я понял, никакого сценария у меня нет, я просто компилировал файл .cpp через компилятор Linux
g++ /dir/
Мне важно получить результат этого когда, но видимо я понятия не имею как это сделать.
Как было сказано автором, «скомпилируй в линуксе»
Код был написан разработчиками оборудования
Источник