Linux 用gcc-UNIX编译makefile
正在尝试使Linux 用gcc-UNIX编译makefile,linux,unix,makefile,Linux,Unix,Makefile,正在尝试使makefile将所有.c转换为目录中的执行文件。 例如: am.c 2.c s.c 进入 节目 任何东西都可以工作,但它使用cc,但我想使用gcc编译器。 我该怎么做 SRC = $(wildcard *.c) BIN = $(patsubst %.c,%,$(SRC)) all : $(BIN) 在顶部加一行 CC = gcc 谢谢,还有一个问题。您知道如何在其中添加库-L/usr/lib/nptl-lpthread-lsocket-lnsl-lrt?用它编译你必须添加一些
makefile
将所有.c转换为目录中的执行文件。
例如:
am.c
2.c
s.c
进入
节目
任何东西都可以工作,但它使用cc
,但我想使用gcc
编译器。
我该怎么做
SRC = $(wildcard *.c)
BIN = $(patsubst %.c,%,$(SRC))
all : $(BIN)
在顶部加一行
CC = gcc
谢谢,还有一个问题。您知道如何在其中添加库
-L/usr/lib/nptl-lpthread-lsocket-lnsl-lrt
?用它编译你必须添加一些规则才能做到这一点。一个非常蹩脚的方法是指定CC=gcc-L/usr/lib/nptl-lpthread-lsocket-lnsl-lrt,但有人会因为我的建议而解雇我:-)@unxnut:NO!!您是在建议@#$@#$:P,小建议您可以提到CC:=gcc
,它将覆盖CC
变量,仅在环境中未设置该变量的情况下。通过发布CC=gcc make
,可以让make
使用gcc
@亚历克斯·格雷:实际上你可以使用CFLAGS
&LDFLAGS
变量CFLAGS
表示编译时间标志&LDFLAGS
表示链接时间。添加CFLAGS=-L/usr/lib/nptl
和LDFLAGS=-lpthread-lsocket-lnsl-lrt
。如果这个答案帮助你解决了问题,请接受它。谢谢你,噢,另外一个。一个懦夫有一个比我更好的建议。但是,CFLAGS
旨在通知编译器编译时选项,如-g
或-ansi
。可能您可以使用LDFLAGS
添加库位置和库。对不起,我的错误!-L
和-L
选项都应该是LDFLAGS
的一部分(Dammit无法编辑注释,需要删除的文本太多:P)
CC = gcc