Я получаю совершенно странную ошибку, пытаясь скомпилировать программу на C, используя GCC. Вот командный файл, который я использую:
echo Now compiling, assembling, and linking the core:
nasm -f aout -o start.o start.asm
gcc -Wall -O -fstrength-reduce -fomit-frame-pointer -finline-functions -nostdinc -fno-builtin -I./include -c -o consoleio.o consoleio.c
gcc -Wall -O -fstrength-reduce -fomit-frame-pointer -finline-functions -nostdinc -fno-builtin -I./include -c -o core.o core.c
gcc -Wall -O -fstrength-reduce -fomit-frame-pointer -finline-functions -nostdinc -fno-builtin -I./include -c -o system.o system.c
ld -T link.ld -o core.bin start.o core.o system.o consoleio.o
echo Done!
concat.py
pause
Вот сообщения об ошибках, которые я получаю при попытке запустить этот код. Все файлы находятся в одном каталоге, да, переменная PATH установлена правильно:
C:\Simple\core>build.bat
C:\Simple\core>echo Now compiling, assembling, and linking the core:
Now compiling, assembling, and linking the core:
C:\Simple\core>nasm -f aout -o start.o start.asm
C:\Simple\core>gcc -Wall -O -fstrength-reduce -fomit-frame-pointer -finline-func
tions -nostdinc -fno-builtin -I./include -c -o consoleio.o consoleio.c
The system cannot execute the specified program.
C:\Simple\core>gcc -Wall -O -fstrength-reduce -fomit-frame-pointer -finline-func
tions -nostdinc -fno-builtin -I./include -c -o core.o core.c
C:\Simple\core>gcc -Wall -O -fstrength-reduce -fomit-frame-pointer -finline-func
tions -nostdinc -fno-builtin -I./include -c -o system.o system.c
The system cannot execute the specified program.
C:\Simple\core>ld -T link.ld -o core.bin start.o core.o system.o consoleio.o
c:/djgpp/bin/ld.exe: system.o: No such file: No such file or directory (ENOENT)
C:\Simple\core>echo Done!
Done!
C:\Simple\core>concat.py
Traceback (most recent call last):
File "C:\Simple\core\concat.py", line 12, in <module>
with open("core.bin", "rb") as core:
IOError: [Errno 2] No such file or directory: 'core.bin'
Теперь интересная вещь - это команда gcc, с которой я столкнулся. (Другие проблемы, кажется, каскадируются из этого.) При компиляции core.c команда GCC работает отлично и отлично и выдает файл .o, как и ожидалось. При попытке скомпилировать system.c или consoleio.c сбой GCC происходит, но очень неожиданным образом: кажется, что окна не могут запустить программу. Это имеет смысл ноль для меня. Я пробовал разные вещи, включая запуск этих команд за окном. Что-то в core.c просто особенное, и я не могу понять, в чем разница. Я буквально скопировал эту строку и изменил имена файлов, чтобы создать две другие строки с ошибками.
Итак, вкратце, ПОМОГИТЕ. Я использую DJGPP и GCC на Windows XP вместе со скриптом Python в конце, который должен связать все вместе. (Это все работало, когда проект представлял собой один исходный файл, но попытка разбить файл на отдельные файлы вызвала эту странную ошибку.)
Спасибо.
PS: Да, мы используем пакетный файл, и я знаю, что некоторые из вас съеживаются. Однако мне бы очень хотелось понять эту ошибку, прежде чем перейти к make-файлу, если это возможно. ^ _ ^
РЕДАКТИРОВАТЬ: Принятый ответ действительно был нашей проблемой, хотя проблема была с DJGPP, а не Windows. (Похоже, в Windows нет предела команд.) Решением было скомпилировать MinGW вместо DJGPP, что сразу решило проблему. Спасибо, ребята!