我遇到了一个大问题..我已经在Linux OS中使用linux make文件编译了我的c文件.
我想通过命令提示符使用相同的make文件在Windows中编译相同的文件.为此我也有nmake实用程序和Cygwin实用程序.
我用简单的make文件成功完成了这个程序.
但是当我使用具有复杂make文件的复杂C文件时,无法进行编译.
我已经将linux make文件中的'/'更改为'\'在windows中?还有其他变化吗?
我想知道'Windows中有没有特殊的make文件格式?'
也是他们之间的区别..
我真的需要那个......
不幸的是,nmake只是受到了make的轻微启发,并没有让很多重要事情发生.到目前为止,最简单的方法是首先在两个平台上使用相同的make.
在linux上,Gnu make是默认和最佳选择.
在Windows上,有几个Gnu make的来源,有一些怪癖可供选择.就个人而言,我主要使用GnuWin32项目中的Gnu make的原生win32版本.你可能想要在项目的其他部分包围,因为其他一些包也会很有用.
替代来源是Cygwin和MinGW32/MSYS.
Cygwin是在Windows内核之上提供*nix兼容性环境的可靠尝试.它由一个DLL组成,该DLL导出通过Windows API实现的大部分*nix(尤其是POSIX)系统调用.该DLL也有自己的关于磁盘安装的想法,并且更喜欢*nix风格的路径名.DLL本身是许可GPL(虽然商业使用许可是收费的),并且在Cygwin环境中构建的程序默认需要它,因此这可能是一个需要考虑的因素.另一个因素是Cygwin对普通Windows用户不友好,因此基于它的开发项目通常很难让非unix用户处理.但是,对于跨平台的开发人员来说,Cygwin非常有用,因为它可以为您提供Makefile所需的所有常见的可疑实用程序,它包括MinGW32本机Windows目标GCC以及针对Cygwin环境的GCC.
MinGW32是一个移植项目,在将GCC编译器移植到本机Windows可执行文件方面做得非常好.如果与它们提供的头文件一起使用,则可以通过现代Windows安装附带的C运行时DLL使用几乎所有Windows API.
MSYS是一个Cygwin的轻量级分支,它包含一组最小的实用程序(以*nix shell开头),这些实用程序通常被假定为典型的*nix Makefile存在.与Cygwin不同,MSYS配置为默认目标是本机Windows API.
我试图在这里暗示,并且可能应该只是陈述,是你的兼容性问题不会以你使用的方言结束.
Makefile语言本身高度依赖于可用的命令shell,而最严重的项目Makefile最终使用了许多*nix核心实用程序,如cp和rm.
我强烈建议从make的GnuWin32版本开始,并安装MinGW32和MSYS.然后编写一个在MSYS和linux下工作的Makefile相对容易,并且只需要少量特定于平台的逻辑.