如果我选择“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/