Tag: makefile

Makefile提供重复错误C.

我创建了一个makefile来同时运行9个程序。 9个程序的名称是init_aim.c,register.c,sort.c,schedule.c,add.c,class_schedule.c,class_list.c,grade.c和report.c。 在我实现代码的每个文件中: #include “aim.h” int main(){ return 0; } 我还有一个带代码的头文件 #ifndef AIM_H #define AIM_H #endif 我唯一的目标是让我的makefile正常工作。 并且还添加“all:”规则。 我当前的makefile看起来像这样。 AIS: init_aim.o register.o sort.o schedule.o add.o class_schedule.o class_list.o grade.o report.o gcc -Wall -ansi -pedantic init_aim.o register.o sort.o schedule.o add.o class_schedule.o class_list.o grade.o report.o -o AIS init_aim.o: init_aim.c aim.h gcc -Wall -ansi -pedantic -c init_aim.c -o init_aim.o […]

添加颜色在OS X上不起作用

我最近切换到Macbook Air,然后转到OS X.我将一些当前项目导入到它并尝试使用我的Makefile编译它们。 我的Makefile有一些自定义输入添加颜色与/ bin / echo -e“\ 033 [0; 31m”例如+文本。 它在我的旧计算机(OpenSuse distrib)上运行良好,但它甚至不再在我的Mac上编译我的二进制文件。 这是我尝试通过Makefile提示自定义行时获得的内容: -e \033[0;31m (MY TEXT) \033[00m 因为我在编译我的.o文件时使用自定义输入,所以没有编译它们所以我的项目构建失败。 我的Makefile在没有这些自定义输出的情况下工作得很好,但我想知道为什么它们不适用于OS X. 如果有人要求进一步调查,我可以发布我的Makefile代码。

Makefile for Windows和Cygwin

我需要在Windows和Cygwin下使用makefile 。 我遇到makefile正确检测OS并设置适当变量的问题。 目标是为以下命令设置变量,然后使用变量调用规则中的命令: 删除文件:在Cygwin中的rm ,在Windows中的del 。 删除目录: rmdir (Cygwin和Windows中的不同参数) 复制文件:Cygwin中的cp ,在Windows中copy 。 测试文件存在:在Cygwin中test ,在Windows中test IF EXIST 。 列出文件的内容:在Cygwin中type cat ,在Windows中输入。 这是我的尝试,它始终使用else子句: OS_KIND = $(OSTYPE) #OSTYPE is an environment variable set by Cygwin. ifeq ($(OS_KIND), cygwin) ENV_OS = Cygwin RM = rm -f RMDIR = rmdir -r CP = cp REN = mv IF_EXIST = […]

使用makefile从lex文件生成a.out

我有auto.lex ,我想生成此文件的a.out 。 我试过了 – a.out: lex.yy.c gcc -c lex.yy.c lex.yy.c: auto.lex flex -c auto.lex 但它不起作用。 编辑: 变成 – a.out: lex.yy.c gcc lex.yy.c lex.yy.c: auto.lex flex auto.lex 并修复。

makefile特定于目标的文件

我正在尝试制作一个编译两个不同文件集的makefile文件。 这是真的吗? 到目前为止我尝试的是: target1: OBJ = foo1.o foo2.o target1: application target2: OBJ = foo3.o foo4.o target2: application application: $(OBJ) $(LD) $(OBJ) 会发生的是使用正确的参数调用LD但是从不实际检查依赖关系,因此从不执行将.c文件编译为.o的隐式规则,因此链接器失败: ld: cannot find foo1.o: No such file or directory ld: cannot find foo2.o: No such file or directory 这样做的正确方法是什么?

将V = s Flage传播到所有子makefile

当我使用make构建内核模块时,我会得到这种日志 CC[M] module1 CC[M] module2 CC[M] module3 CC[M] module4 即只是编译或链接有关当前正在处理的任何模块的信息。 我需要知道哪些命令实际编译模块源代码的完整信息,这些命令中使用的flags是什么等等 gcc -Wall abcd.c 我甚至通过设置V=s , V=1 , -n和-d来检查它,但是无法得到我想要的东西。 请告诉我如何使V=s传播通过每个后续的makefile。 它可以通过如何通过exporting来完成? 谢谢

Swift包管理器有多个目标可执行文件?

有谁知道Swift Package Manager是否支持从一个包中生成多个可执行文件? 我有一个需要迁移到Swift的C程序,它目前打包为具有多个目标的makefile。 我对可能映射到Swift包的方式有点挣扎,还是“包”?

在c中链接具有多个主要function的文件

是否可以使用makefile链接两个C文件,该文件调用彼此的函数,但两者都有自己的main函数。 例如:C1.c使用C2.c中的函数f()但两者都有main函数,我希望C1.c中的main只被视为main 。 FILES.o=set.o hash.o printnfa.o input.o nfa.o dfa.o terp.o minimize.o defnext.o print_ar.o pairs.o squash.o signon.o print.o lex.o assort.o prnt.o printv.o bintoasc.o ferr.o onferr.o fputstr.o pchar.o driver.o searchenv.o hashadd.o esc.o PROGRAM= Lexer INC := -I./debug.h -I./global.h -I./stack.h -I./set.h -I./hash.h CFLAGS=-DMAIN all: ${PROGRAM} ${PROGRAM}: ${FILES.o} ${CC} -o $@ ${CFLAGS} $(INC) $^ ${LDFLAGS} ${LDLIBS} 现在terp.c有一个main和lex.c也有一个main 。 我只想要考虑lex.c的main内容。

如何在Make中使用ccache?

我有一个源目录,它使用makefile来编译代码。 此makefile / configure文件不是为ccache兼容性而编写的。 所以我想用ccache。 我在.bashrc中创建了alias alias gcc=’ccache gcc’ ,但Makefile仍未考虑gcc的这个定义。 因此,如果不触及Makefile/configure文件,我可以做任何事情,这样它就需要ccache gcc而不是gcc 。 CC =’ccache gcc’./configure也不是一个选项,因为它不要求CC。 如果我写Makefile然后我可以提供$ {gcc),但这不是一个选项,因为我不是在写Makefile。 有什么方法我们不需要在源文件中更改任何内容,但仍然启用ccache编译。

Eclipse CDT和未知标签

目前,我们正在寻求从CodeWright(早已被Borland放弃)转移到Eclipse的开发环境。 我们正在使用Eclipse进行Perl,PHP和一些Windows C ++开发,取得了很大的成功。 然而,问题出现在我们的嵌入式环境中,在makefile中使用了一些Excel似乎无法理解的定义。 这是一个例子(改变了值以保护有罪者): F_FOO unsigned char foo(ptr *this) { } 其中F_FOO在makefile中定义为 F_FOO=@foobar Eclipse将突出显示F_FOO并将其标记为语法错误。 这导致各种悲伤和可追溯性。 在某些情况下,这也发生在Builder C ++中的一些代码中,其中Eclipse不知道如何处理关键字__fastcall。 任何有关这方面的帮助(我知道我们不能成为唯一遇到此问题的人)将受到高度赞赏。