gpt4 book ai didi

c - 如何使用 header 进行编译并创建 Makefile - C

转载 作者:行者123 更新时间:2023-11-30 14:54:25 27 4
gpt4 key购买 nike

我正在尝试编译并创建一个 Makefile,其中我的源代码按照以下结构组织:

|-- build
|-- include
| \-- functions.h
\-- src
|-- functions.c
\-- main.c

那里编写的代码已经在 IDE 上进行了测试,所以我知道它可以工作。我只需要编译它,但我不知道如何执行扩展名为 .c 和 .h 文件的 2 个文件。另外,我需要为此创建一个 makefile。

如何?

最佳答案

Makefile 只是一些文本文件(其中 tab 字符至少在启动命令行时很重要)。使用一些source code editor创建或改进它;我更喜欢GNU emacs所以推荐它,但你可以使用其他编辑器(例如 vimgedit 等),这是一个品味问题。顺便说一句,不要忘记使用一些版本控制系统(我推荐 git )。

在创建 Makefile 之前,请花一些时间阅读 documentation of make 。请注意众多内置规则(您可以通过运行 make -p 来获取这些规则)并利用它们。

how to execute 2 .c files and the .h file.

您不执行 .c 文件,但将它们提供给您的 C compiler 。我建议使用GCC (或者可能是 Clang/LLVM )作为您的 C 编译器。

您可能应该将 CC make 变量(它提供默认的 C 编译器)设置为 gcc,并将 CFLAGS 变量(它提供默认编译器标志)。

因此请阅读有关 Invoking GCC 的文档。您肯定希望在编译时包含所有警告和调试信息。

因此,我建议在您的 Makefile 中包含以下两行

 CC= gcc
CFLAGS= -Wall -Wextra -g

当然,您的Makefile 中还需要其他行。我让你阅读更多内容并进行实验。 Thisthat应该是励志的。

您可能想在 Makefile 中提及对头文件的依赖关系。

所以我让你写下你的Makefile 。将其视为 source code ,所以要小心备份和版本控制。

顺便说一句,对于像您这样的小程序,我认为拥有 src/include/ 目录没有用,并且我相信引入 >build/ 目录只是增加了不必要的复杂性。 YMMV。

The code written there has been tested on a IDE, so I know it works.

这可能是一种幻觉。有时您可能会运气不好,拥有一些undefined behavior这只是“看起来”有效,但实际上是一个错误。请参阅this answer并点击我在那里提供的链接。

有很多free software使用 make 构建的项目;关注github和其他地方找到一些。有时 Makefile 本身是生成的(例如使用 cmakeqmakeautoconf ),但在您的简单情况下这是不值得的。

PS。不要指望 StackOverflow 能为你做足功课。

关于c - 如何使用 header 进行编译并创建 Makefile - C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46757022/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com