Как мне добавить свой собственный каталог заголовочных файлов в Mac Terminal gcc? - PullRequest
4 голосов
/ 18 апреля 2011

Я пытаюсь скомпилировать программу на C (myProgram.c), которая включает в себя пользовательский файл .h, который находится в указанном каталоге. Как я могу добавить каталог в gcc, чтобы я мог собрать myProgram.c в любое время, используя только такую ​​команду, как gcc myProgram ( без флагов, а не )

Ответы [ 3 ]

3 голосов
/ 18 апреля 2011

Вы можете сделать это, изменив переменную окружения C_INCLUDE_PATH, например,

C_INCLUDE_PATH=~/include
export C_INCLUDE_PATH

Вы можете добавить это к своему .bashrc или .bash_profile или к чему-либо еще, чтобы переменная окружения всегда была установлена ​​правильно. Вот справочник о том, как вы можете сделать то же самое для библиотек и C ++ .

2 голосов
/ 28 июля 2016

пришлось использовать целый набор флагов, чтобы заставить это работать на El Capitan:

export DYLD_LIBRARY_PATH=/usr/local/include
export CPPFLAGS="-I/usr/local/include/snappy-c.h"
export CFLAGS="-I/usr/local/include/snappy-c.h"
export CXXFLAGS="-I/usr/local/include/snappy-c.h"
export LDFLAGS="-L/usr/local/lib"
0 голосов
/ 23 апреля 2011

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

Предполагается, что вы используете эти же файлы и они находятся в одном каталоге

  • main.c
  • custom.c
  • custom.h

Пример файла сборки может выглядеть как

all: main.o custom.o
    gcc main.o custom.o -o myExecutable

main.o: main.c
    gcc -c main.c

custom.o: custom.c custom.h
    gcc -c custom.c

clean:
    rm -f *.o myExecutable

или что-то похожее, общий формат

name: dependency
    command

Таким образом, запустив make all из командной строки, вы дадите команду компилятору скомпилировать исходный код в объектные файлы, а затем связать эти объектные файлы вместе в исполняемый файл.

Make должно быть легко доступно в любой современной системе. Для получения дополнительной информации об основных make-файлах и их использовании обратитесь к этому простому руководству: http://mrbook.org/tutorials/make/

...