【问题标题】:Makefile: Split binary, source and header files into directoriesMakefile:将二进制文件、源文件和头文件拆分到目录中
【发布时间】:2012-10-19 00:25:14
【问题描述】:

这是我第一次尝试创建一个编译文件。我正在做一个项目,我想在编译下划分文件,所以我有 3 个文件夹:src、bin 和 header。今天我用命令 gcc file1.c file2.c file3.c -lncurses 编译

我怎样才能写一个makefile来实现这个?

【问题讨论】:

    标签: makefile


    【解决方案1】:

    这样就可以了:

    bin/myBinaryName: file1.c file2.c file3.c
        gcc $^ -Iheader -lncurses -o $@
    
    vpath %.c src
    

    还有比这更复杂的方法,但我怀疑你和过去几周提出非常相似问题的其他新人正在学习相同的课程。

    如果您想要更基本的介绍,或更复杂的 makefile,您可以尝试不同的问题。

    编辑:

    让我们尝试一些更简单的方法。编写这个makefile(并将其命名为makefile):

    all:
        echo hello world
    

    请注意,“echo”之前的空格是一个制表符。现在在命令行上尝试make。会发生什么?

    【讨论】:

    • bin/myBinaryName 是文件夹吗?这个 makefile 应该放在 src 和 bin 的根文件夹中,还是放在 src 文件夹中?
    • @user265767,你没有指定,所以我想你希望二进制文件进入bin/,我将它命名为myBinaryName。此 makefile 属于父目录(即根文件夹)。
    • 确定 bin/myBinaryName: file1.c file2.c file3.c 应该是这样,而不是这样: bin/myBinaryName: file1.c file2.c file3.c,其中 : 是删除?删除后 : make 停止抱怨 bin/myBinaryName: No such file or directory。现在抱怨权限被拒绝,每个文件和文件夹都为所有用户读/写?
    猜你喜欢
    • 1970-01-01
    • 2015-11-02
    • 2016-04-20
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多