我正在尝试编译包含指定目录中的自定义.h文件的C程序(myProgram.c)。如何将目录添加到gcc,以便我可以使用gcc myProgram
之类的命令随时构建myProgram.c(没有标记,什么不是)
答案 0 :(得分:3)
您可以通过更改C_INCLUDE_PATH
环境变量来完成此操作,例如
C_INCLUDE_PATH=~/include
export C_INCLUDE_PATH
您可以将其添加到.bashrc
或.bash_profile
或其他任何内容,以便始终正确设置环境变量。 Here's a reference on how you can do the same for libraries and C++
答案 1 :(得分:2)
必须使用一整套标志才能让它在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"
答案 2 :(得分:0)
Makefile在这种情况下会有所帮助,它们可以简化多个文件项目的编译。
假设您正在使用这些相同的文件并且它们位于同一目录中
示例makefile可能看起来像
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应该可以在任何现代系统上轻松使用。有关基本makefile和用法的更多信息,请参阅这个简单的教程:http://mrbook.org/tutorials/make/