我遇到了很大的问题..i在Linux OS中使用linux make文件编译了我的c文件。

我想通过命令提示符使用相同的make文件在Windows中编译相同的文件。为此,我也有nmake实用程序和Cygwin实用程序。

我已经成功完成了简单的程序,带有简单的make文件..

但是当我将复杂的C文件与复杂的make文件一起使用时,无法进行编译。

我在Windows中将linux make文件中的'/'更改为'\'吗?还有其他变化吗?

我想知道“Windows中是否有任何特殊的make文件格式?”

他们之间也有区别

我真的很需要那个...

最佳答案

不幸的是,nmake只是受到了make的启发,而他们并没有把很多重要的事情弄对。到目前为止,最简单的方法是从在两个平台上具有相同的制造风格开始。

在Linux上,Gnu make是默认的最佳选择。

在Windows上,有多种Gnu make来源,有些古怪可供选择。我个人主要使用native win32 build of Gnu make from the GnuWin32 project。您可能想在项目的其余软件包中四处寻找,因为其他一些软件包也将很有用。

替代来源是CygwinMinGW32/MSYS

Cygwin是在Windows内核之上提供* nix兼容性环境的可靠尝试。它由一个DLL组成,该DLL导出通过Windows API实现的大量* nix(尤其是POSIX)系统调用。该DLL也对磁盘安装有自己的想法,并且更喜欢* nix样式的路径名。 DLL本身已获得GPL许可(尽管可以付费使用商业使用许可),并且在Cygwin环境中构建的程序默认情况下需要它,因此可以考虑。另一个因素是Cygwin对普通Windows用户不友好,因此基于它的开发项目通常最终会导致非Unix用户难以处理。但是,对于跨平台的开发人员而言,Cygwin确实很有用,因为它可以获取Makefile所需的所有常见可疑实用程序,并且包括MinGW32本机Windows目标GCC以及 objective-c ygwin环境的GCC。

MinGW32是一个移植项目,在移植GCC编译器作为本机Windows可执行文件方面做得非常好。如果与它们提供的头文件一起使用,则可以通过现代Windows安装附带的C运行时DLL使用几乎所有Windows API。

MSYS是Cygwin的轻量级分支,它包含最少的一组实用程序(以* nix shell开头),通常假定它们由典型的* nix Makefile存在。与Cygwin不同,MSYS配置为默认目标是本机Windows API。

我想暗示的是,您的兼容性问题并不会因为您使用的方言而终止,并且可能应该简单地说一下。

Makefile语言本身高度依赖于可用的命令 shell ,而最严肃的项目Makefiles最终会使用许多* nix核心实用程序,例如cp和rm。

我强烈建议从make的GnuWin32版本开始,并安装MinGW32和MSYS。这样,编写一个既可以在MSYS也可以在Linux下工作的Makefile相对容易,并且只需要少量平台特定的逻辑即可。

关于c - make --- Linux和Windows格式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/892585/

10-09 06:37
查看更多