如何将自己的头文件目录添加到 Mac 终端 gcc 中?

发布于 2024-11-02 03:23:04 字数 146 浏览 1 评论 0原文

我正在尝试编译一个 C 程序 (myProgram.c),其中包含指定目录中的自定义 .h 文件。如何将目录添加到 gcc,以便我可以随时使用 gcc myProgram 之类的命令构建 myProgram.c(没有标志以及什么没有

I'm trying to compile a C program (myProgram.c) that includes a custom .h file that is in a specified directory. How can I add the directory to gcc so that I can build myProgram.c anytime using just a command like gcc myProgram (with no flags and what not)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

我一直都在从未离去 2024-11-09 03:23:04

您可以通过更改 C_INCLUDE_PATH 环境变量来做到这一点,例如,

C_INCLUDE_PATH=~/include
export C_INCLUDE_PATH

您可以将其添加到 .bashrc.bash_profile 或任何始终具有环境变量设置正确。 以下是有关如何对库和 C++ 执行相同操作的参考

You can do this by altering the C_INCLUDE_PATH environment variable, e.g.

C_INCLUDE_PATH=~/include
export C_INCLUDE_PATH

You can add that to your .bashrc or .bash_profile or whatever to always have the environment variable set properly. Here's a reference on how you can do the same for libraries and C++.

行雁书 2024-11-09 03:23:04

必须使用一整套标志才能在 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"

had to use a whole set of flags to get this working on 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"
雪花飘飘的天空 2024-11-09 03:23:04

Makefile 在这种情况下会很有帮助,它们简化了多个文件项目的编译。

假设您正在使用这些相同的文件,并且它们位于同一目录

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

示例 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/

Makefiles would be helpful in this situation, they ease the compilation of multiple file projects.

Assuming you are using these same files and they are in the same directory

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

A sample makefile could look like

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

Or something similar, the general format is

name: dependency
    command

So by running make all from the commandline you would be instructing the compiler to compile your source code into object files, and then link those object files together into an executable.

Make should be easily available on any modern system. For more information on basic makefiles and usage refer to this simple tutorial: http://mrbook.org/tutorials/make/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文