c – 对make(Linux)和nmake(Windows)使用相同的makefile

前端之家收集整理的这篇文章主要介绍了c – 对make(Linux)和nmake(Windows)使用相同的makefile前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个简单的C-Programm(1源文件),我想在 Linux和Windows上通过make来编译. NMAKE.有没有可能用单个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中包含的常见makefile中.

猜你在找的C&C++相关文章