Articles of makefile

为什么库链接器标志有时不得不在最后使用GCC?

我正在写一个使用librt的小型C程序。 我很惊讶,如果我把链接标志放在开始而不是结尾,程序将不能编译: 目前,我编译的程序是: gcc -o prog prog.c -lrt -std=gnu99 如果我要做下面的事情,它将无法在librt中find函数: gcc -std=gnu99 -lrt -o prog prog.c 然而,这与其他图书馆合作。 尝试使用简单的Makefile时发现了这个问题。 使实际编译prog.c不喜欢先(使用-c标志),然后做链接。 这是Makefile: CC = gcc CFLAGS = -std=gnu99 LIBS= -lrt LDFLAGS := -lrt prog: prog.o $(CC) -o prog prog.c -lrt -std=gnu99 inputmake时输出的结果是: gcc -std=gnu99 -c -o prog.o prog.c gcc -lrt prog.o -o prog prog.o: In function `main': […]

make不被识别为内部或外部命令 – Qt SDK – Windows

我通过Qt-SDK 2010.01安装了Qt 。 如何在Qt的terminal上运行make ? 我已经设置了系统path: Qtpath命令提示符: 请帮忙。 🙁 🙁

使用环境variables识别Cygwin,Linux,Windows

当生成文件需要在不同的操作系统上运行时,问题就出现了,根据操作系统的不同,应该正确设置不同的设置(转义,path分隔符等)。 第一种方法是使用Windows COMSPEC: ifneq ($(COMSPEC)$(ComSpec),) ## in windows else ## in linux endif 这对于Cygwin来说是错误的,因为它会看到Windows的环境variables,并将Cygwin检测为Windows。 然后我们试了一下Linux的PWD: ifeq ($(PWD),) ## in windows else ## in linux, cygwin endif 但是,由于现场工具的集成,我们将PWD设置在windows(perl的模块之一)中。 所以,检测再次失败。 我想知道,使用环境variables区分Cygwin,Linux,Windows的最佳方法是什么?