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++类中,有6个默认成员函数: 构造函数 析构函数 拷贝...
#pragma once // 1. 设计一个不能被拷贝的类/* 解析:拷贝只会放生在两个场景中:拷贝构造函数以及赋值运...
C类型转换 C语言:显式和隐式类型转换 隐式类型转化:编译器在编译阶段自动进行,能转就转,不能转就编译...
//异常的概念/*抛出异常后必须要捕获,否则终止程序(到最外层后会交给main管理,main的行为就是终止) try...
#pragma once /*Smart pointer 智能指针;灵巧指针 智能指针三大件//1.RAII//2.像指针一样使用//3.拷贝问...
目录<future>future模板类成员函数:promise类promise的使用例程:packaged_task模板类例程...