Я пытаюсь скомпилировать C-программу с несколькими файлами на оконной платформе. Однако, когда я это делаю, происходят ошибки. Я уже пытался изменить команду в make-файле, но не смог ее исправить. Это моя команда GCC:Ошибка при компиляции с помощью GCC
gcc -o "SYSMONTR" $(OBJPATH)/chkdsksp ../chkdsksp.c -g -I"$(DB2PATH)/include" -I"$(MYLIBDIR)" $(MYIQDIR)/iqclilib.a $(OBJPATH)/icrou.a -lc -ldb2 -lnsl -L"$(DB2PATH)/lib"
Это результат:
gcc -o "SYSMONTR" ../../iLINKOBJ/chkdsksp ../chkdsksp.c -g -I"C:/Program Files/IBM/SQLLIB/include" -I"../../iLINKCLIB" ../../iLINKIQOBJ/iqclilib.a ../../iLINKOBJ/icrou.a -lc -ldb2 -lnsl -L"C:/Program Files/IBM/SQLLIB/lib"
../../iLINKOBJ/chkdsksp: file not recognized: File format not recognized
collect2: error: ld returned 1 exit status
makefile:49: recipe for target `SYSMONTR' failed
make: *** [SYSMONTR] Error 1
Что может вызвать такую ошибку и что мне с ним делать? Использование cygwin on Window (IDE: Eclipse). Любые опоры будут оценены.
Что такое 'chkdsksp'? – Mat
Ваша команда плохая. Флаг '-o' принимает один аргумент, который является файлом, который должен быть создан в качестве вывода компилятором. Итак, '-o SYSMONTR $ (OBJPATH)/chkdsksp' означает« связать программу и называть ее «SYSMONTR» и как часть ее вытащить файл '$ (OBJPATH)/chkdsksp', что, вероятно, является программой. t link программа в другую программу.Я подозреваю, что вы ХОТЯЛИСЬ сказать: '-DSYSMONTR -o $ (OBJPATH)/chkdsksp' вместо этого. – MadScientist
chkdsksp - это объектный файл, а не программа. При использовании команды Mad's произошла другая ошибка : "iLINKIQOBJ/iqclilib.a: формат файла не распознан; как ссылочный скрипт " У вас есть идеи? Спасибо. –