UNIX-makefile帮助!
在下面寻找编译我的程序的帮助。在编译器缓冲区中键入limit.makefile时,出现“***停止。无目标。”错误。想法UNIX-makefile帮助!,unix,compiler-construction,makefile,system,Unix,Compiler Construction,Makefile,System,在下面寻找编译我的程序的帮助。在编译器缓冲区中键入limit.makefile时,出现“***停止。无目标。”错误。想法 int main(int argc, char *argv[]) { struct rlimit limit; limit.rlim_cur = 60000; limit.rlim_max = 60000; if (setrlimit(RLIMIT_FSIZE, &limit) == -1){ perror("Error preventing
int main(int argc, char *argv[]) {
struct rlimit limit;
limit.rlim_cur = 60000;
limit.rlim_max = 60000;
if (setrlimit(RLIMIT_FSIZE, &limit) == -1){
perror("Error preventing core dump, errno=%d\n", errno);
exit(1);
}
else {
printf("The current core limit is %ll.\n", limit.rlim_cur);
printf("The core max limit is %ll.\n", limit.rlim_max);
exit(0);
}
if (getrlimit(RLIMIT_FSIZE, &limit) == -1){
printf("getlimit() failed with errno=%d\n", errno);
exit(1);
}
}
编译命令:make-k-f limit.makefile
这是我为编译器缓冲区键入的内容…但仍然会得到错误
生成文件:
CC = /usr/bin/gcc
CFLAGS = -g -Wall -std=c99 -O2 -arch x86_64
试一试
CC=/usr/bin/gcc
CFLAGS=-g-壁面-std=c99-O2-拱门x86_64
OBJ=极限值
%.o:%.c
$(CC)-c-o$@$<$(CFLAGS)
试试看
CC=/usr/bin/gcc
CFLAGS=-g-壁面-std=c99-O2-拱门x86_64
OBJ=极限值
%.o:%.c
$(CC)-c-o$@$<$(CFLAGS)
您还没有定义要构建的目标是什么。您可以在命令行上使用
make -k -f limit.makefile limit
而make
的隐式规则将limit.c
编译成limit
。或者在makefile中定义一个目标
CC = /usr/bin/gcc
CFLAGS = -g -Wall -std=c99 -O2 -arch x86_64
limit: limit.o
默认情况下将构建第一个目标,make知道如何将*.c
编译为*.o
并链接对象文件,以便其他所有操作都是自动的
如果您好奇的话,默认规则相当于(在GNU make中)
%.o:%.c
$(CC)$(CPPFLAGS)$(CFLAGS)-c-o$@$<
%:%
$(CC)$(LDFLAGS)-o$@$^$(LDLIBS)
其中,
$@
,$您尚未定义要构建的目标。您可以在命令行上使用
make -k -f limit.makefile limit
而make
的隐式规则将limit.c
编译成limit
。或者在makefile中定义一个目标
CC = /usr/bin/gcc
CFLAGS = -g -Wall -std=c99 -O2 -arch x86_64
limit: limit.o
默认情况下将构建第一个目标,make知道如何将*.c
编译为*.o
并链接对象文件,以便其他所有操作都是自动的
如果您好奇的话,默认规则相当于(在GNU make中)
%.o:%.c
$(CC)$(CPPFLAGS)$(CFLAGS)-c-o$@$<
%:%
$(CC)$(LDFLAGS)-o$@$^$(LDLIBS)
其中,$@
,$EboMike的更复杂,但这里有一个更简单的方法,可以保证适用于您的单文件项目:
CC = /usr/bin/gcc
CFLAGS = -g -Wall -std=c99 -O2 -arch x86_64
limit: limit.c
$(CC) $(CFLAGS) -o limit limit.c
您只需使用
make
本身即可运行此功能。EboMike的功能更为复杂,但这里有一个更简单的功能,可以保证适用于您的单文件项目:
CC = /usr/bin/gcc
CFLAGS = -g -Wall -std=c99 -O2 -arch x86_64
limit: limit.c
$(CC) $(CFLAGS) -o limit limit.c
您可以使用make本身运行此操作。刚刚在一个空文件上尝试make-k-f myfile,但收到了错误 如果你只是想让它工作的话
CC= /usr/bin/gcc
CFLAGS = -g -Wall -std=c99 -O2 -arch x86_64
all: test.c
$(CC) $(CFLAGS) test.c
请注意,“全部”下的选项卡必须是“真实”选项卡
我建议您查看makefile教程,或者从命令行编译它。
gcc-g-墙体-std=c99-O2-拱x86_64极限.c
顺便说一句,我不太清楚那个-拱门标志。在我的Linux机器上无效。刚刚在一个空文件上尝试了make-k-f myfile,但收到了错误 如果你只是想让它工作的话
CC= /usr/bin/gcc
CFLAGS = -g -Wall -std=c99 -O2 -arch x86_64
all: test.c
$(CC) $(CFLAGS) test.c
请注意,“全部”下的选项卡必须是“真实”选项卡
我建议您查看makefile教程,或者从命令行编译它。
gcc-g-墙体-std=c99-O2-拱x86_64极限.c
顺便说一句,我不太清楚那个-拱门标志。在我的Linux机器上无效。您可以编辑您的问题并将make limit.makefile放入吗?您的makefile不包含任何需要编译的文件?limit.c是我需要编译的程序。我在哪里添加它?你能编辑你的问题并将make limit.makefile放入吗?你的makefile不包含任何需要编译的文件?limit.c是我需要编译的程序。我应该在哪里添加它?您应该在编译器调用中添加$(CFLAGS),否则它们将不被使用。您应该在编译器调用中添加$(CFLAGS),否则它们不会被使用,-arch标志用于Mac OS X。它允许您显式编译32位或64位体系结构,-arch标志用于Mac OS X。它允许您显式编译32位或64位体系结构。