Даже не совсем уверен, что мой вопрос. Суть в том, что для класса я должен добавить некоторые функции в этот файл c, и он поставляется с удобным make-файлом.
CFLAGS=-DUNIX -lreadline -lcurses -ansi -pedantic-errors
DEBUG=-g
#DEBUG=
all: shell
shell: shell.c parse.c parse.h
gcc $(CFLAGS) $(DEBUG) shell.c parse.c -o shell
clean:
rm -f shell *~
Я должен добавить функции в shell.c. Я очень плохо знаком с C (обычно использую c ++ или c #), поэтому тестирую мелочи в отдельном небольшом файле tests.c. Например, посмотреть, что именно возвращают определенные системные вызовы, как правильно их печатать и т. Д. В любом случае, tests.c, похоже, соответствует различным стандартам компилятора c, или я компилирую это неправильно. Если я случайно использую //, чтобы закомментировать что-то или объявить переменную где-то, кроме как в начале в shell.c, компилятор кричит на меня. В тестах все равно.
Я компилирую tests.c с помощью "gcc tests.c -o tests"
Если я скомпилирую оболочку, используя "gcc shell.c parse.c -o shell", она скомпилируется нормально, но ее запуск просто вызывает ошибку сегментации. Я хотел бы спросить моего ТА об этом, но каждый раз, когда я, как он, что-то отвечаю на совершенно другой вопрос ...
Есть мысли о том, что здесь происходит? Возможно, точка в правильном направлении, по крайней мере?