我有一个简单的C程序(一个源文件),我想分别通过make和nmake在Linux和Windows上进行编译。是否有可能通过单个makefile完成此操作?
我想到了类似的东西
ifeq($(MAKE), nmake)
// nmake code here
else
// make code here
endif
不幸的是,nmake似乎不了解
ifeq
,所以我不能使用它。我有一个可以正常工作的makefile,但是会产生非常丑陋的结果:hello: hello.c
$(CC) hello.c
在两个系统上都可以使用。问题在于结果取决于各个编译器的默认行为。在Linux下,我得到一个名为“a.out”而不是“hello”的可执行文件。在Windows下,我会得到“hello.exe”,但也有我不想拥有的“hello.obj”。
还有其他方法吗?还是我要尝试的东西绝对不可能?
最佳答案
这可能不是不可能,但很可能如此艰巨,以至于无论如何都要编写两个makefile。
但是,GNU make(在Linux中使用)和nmake都包含include指令,因此可以将一些常见的东西放入主makefile包含的公共(public)makefile中。
关于c - 对make(Linux)和nmake(Windows)使用相同的makefile,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8270391/