【发布时间】:2011-04-18 00:54:14
【问题描述】:
我正在尝试编译一个 C 程序 (myProgram.c),其中包含一个位于指定目录中的自定义 .h 文件。如何将目录添加到 gcc 以便我可以随时使用像 gcc myProgram 这样的命令构建 myProgram.c(没有标志,什么没有)
【问题讨论】:
我正在尝试编译一个 C 程序 (myProgram.c),其中包含一个位于指定目录中的自定义 .h 文件。如何将目录添加到 gcc 以便我可以随时使用像 gcc myProgram 这样的命令构建 myProgram.c(没有标志,什么没有)
【问题讨论】:
您可以通过更改 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++.
【讨论】:
~/include,但选择权在你。
必须使用一整套标志才能在 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"
【讨论】:
Makefiles 在这种情况下会很有帮助,它们简化了多个文件项目的编译。
假设您正在使用这些相同的文件并且它们位于同一目录中
一个示例 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/
【讨论】: