2

我有以下内容:一个 .c 代码、一个 .h 代码加上一个 .o 文件和一个 -lib... 库。当我用 gcc 编译 c 代码时,我会:

gcc code.c -o code file.o -library

如何创建生成文件?

我目前有 autoconf 和 automake?

我目前有:

Makefile

all: 
  gcc code.c -o code file.o -library

clean:

 rm -f code

当我编译 make 我得到:

make: Nothing to be done for `all'.

需要一些帮助。谢谢

4

2 回答 2

4

很抱歉,我必须给出这个答案,但是您是否尝试过https://www.google.com/search?q=makefile+tutorial

选择一个,并学习如何创建 Makefile。你不需要自动工具。

通过阅读Makefile 教程,我花了 5 分钟才想出这个:

CC=gcc
CFLAGS=-Wall
CLIBS=-lX11
OUT=code
OBJS=code.o file.o


$(OUT): code.o file.o
    $(CC) $(CFLAGS) $(CLIBS) -o $(OUT) $(OBJS)
code.o: code.c
    $(CC) $(CFLAGS) -c code.c -o code.o
file.o: file.c
    $(CC) $(CFLAGS) -c file.c -o file.o

.PHONY: clean

clean:
    rm -rf *.o $(OUT)

如果在计算机上 -library 不存在,我想自动安装它。

这是特定于使用的发行版的,您需要在机器上进行 root 访问。这样做不是这样做的。相反,您应该创建一个特定于您的发行版的包,您可以在其中指定依赖项。

例如,对于 Ubuntu(因为它是最常用的发行版),您将创建一个 .deb 文件:http ://wiki.debian.org/IntroDebianPackaging

但是,这与您最初的问题无关。

于 2012-09-26T07:59:37.997 回答
2

请参阅此代码,这可能会对您有所帮助。

例如,创建一个 C 测试文件“test.c”,然后创建 makefile,如下所示。

生成文件

 all:

        cc -o test test.c

 clean:

        rm -f test

将此文件另存为“Makefile”

  1. make通过命令运行此 makefile 。然后它在当前目录创建测试可执行文件

  2. 使用运行文件./test

  3. 您可以使用make clean删除可执行文件(测试)。

有关任何参考,请参阅Makefile 教程

于 2014-04-09T18:35:34.677 回答