代码之家  ›  专栏  ›  技术社区  ›  Jacob Nelson

简单生成文件问题(C)

  •  4
  • Jacob Nelson  · 技术社区  · 14 年前

    嘿,所以我是C的新手,但一般是中级程序员。我正在寻找制作文件,并有问题弄清楚他们到底是为了什么,以及如何使用他们。因此,例如,我目前正在通过键入以下命令分别编译项目中的每个文件:

    gcc -o newoutfilename1.out oldcfilename1.c
    gcc -o newoutfilename2.out oldcfilename2.c
    

    newoutfilename1.out 我想跑:

    ./newoutfilename1.out arg1 arg2 arg3 > intothisfile.data
    

    2 回复  |  直到 14 年前
        1
  •  3
  •   Kaelin Colclasure    12 年前

    在Interwebs上有几个GNU Make教程。谷歌出现了一些点击率。你可以从 this one .

        2
  •  3
  •   Angel O'Sphere    14 年前

    好,

    老实说,如果我没有在我的生活中写了几百个使文件,我不会明白一个字在张贴你链接。

    makefile是一种特殊的脚本。

    target: depends-on.c and.h and-even-another.h  
      command -o target depends-on.c
    

    第一行是所有文件,第二行是在“:”之前创建文件的命令

    文件也是。如果target早于'dependents.c'或'and.h'或'and even another.h',则执行第二行中的命令(假设它将创建/重新生成/输出文件'target'),如果这些文件是从源文件编译的,则通常称为target.o。

    换句话说:一行描述输出是什么,在冒号后面是输出所依赖的文件,在第二行是创建输出的命令。

    “:”的左边称为“目标”。

    目标可以依赖于其他目标。

    *.o: *.c   
      cc -o "something you have to look up, dont now it from my mind ;D"
    
    program: *.o  
      ln *.o my.lib another.lib 
    

    上面只编译那些比相应的*.o文件更新的*.c文件,然后将所有的*.o文件与两个命名库链接在一起。

    如果你在linux/unix机器上,试试“人工制造”。否则google;D

    安杰洛