windows - Eclipse、cmake、Windows、MingW - 什么 Makefile 生成器?

标签 windows eclipse makefile cmake mingw

如果我选择“Eclipse MingW Makefile”或“Eclipse Unix Makefile”,在 Windows 上使用 cmake、eclipse 和 MingW 有什么区别?

对于 MingW,我总是遇到“sh.exe”错误(如果我重新点击“配置”,错误就会消失),对于 Unix,我总是必须手动指定 windres,因为 cmake 找不到它。

这对 Eclipse 或其他东西有什么影响吗?

生成的 Makefile 都可以与 Eclipse 和 MingW 一起使用并编译我的项目。

我应该选择什么 Makefile?为什么?

最佳答案

这真是一团糟。

CMake 在 Windows 上有许多不同的 Makefile 生成器:MSYS、MinGW、NMake 和 Unix。 CDT 生成器在 Makefile 生成器之上工作,为您生成一个 Eclipse 项目。目前,CDT 生成器仅支持 MinGW、NMake 和 Unix。

它们之间的区别在于它使用了哪种“制作” flavor 。 MinGW、MSYS 和 Unix 都是 GNU make 的变体(在此上下文中,Unix 表示“Cygwin”)。这些之间的差异主要与how commands are executed有关。 ,更具体地说,哪个 shell 用于执行命令。 GNU make 将非常努力地尝试使用“sh.exe”而不是“cmd.exe”,这通常是出错的地方:在 Makefile 中有一个命令假定有关执行哪个 shell 的详细信息。选择 GNU make flavor 时的另一个问题是确定哪些标准 Unix 实用程序可用(sed/grep/等)。一个值得注意的细节是,如果 GNU make 使用 cmd.exe 执行命令,它将不支持并行构建。

如果您使用 Unix Makefiles,CMake 将假设您的 make 是 Cygwin 的,具有完整的 Unix 仿真。

还要确保您实际运行的是“正确的”品牌。如果您已经生成了 Unix Makefile,但您的 PATH 中首先有 MinGW make,那么在您的构建树中键入“make”可能会失败并出现奇怪的错误。

但是关于你的问题:只要它有效,它真的不重要。

关于windows - Eclipse、cmake、Windows、MingW - 什么 Makefile 生成器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7000780/

相关文章:

windows - 批量编码,然后将文件大小与原始文件大小进行比较并删除更大的文件

java - Spring Tool Suite 4 (JAVA) 上的 "Web Service Client (CXF 2.)"问题

c - 如何在c中将库添加到 'make'命令

makefile - 除某些规则外,并行执行 Makefile

c++ - Ubuntu 上 Eclipse 中的非自由库(用于 Surf Descriptor)的 OpenCV 编译错误

windows - 在 Windows 平台的 Flutter 中实现一个浏览按钮

C++ 将对象传递给线程

windows - 如何在 Windows 上使用 perl 进行就地编辑 (-i)?

java - Selenium Webdriver 无法访问浏览器异常

Android:针对 res 文件夹,用于在 eclipse 中进行调试