blu*_*rnd 5 eclipse windows mingw makefile cmake
如果我选择"Eclipse MingW Makefile"或"Eclipse Unix Makefile",那么在使用cmake和eclipse以及MingW的Windows上会有什么不同?
使用MingW,我总是会遇到"sh.exe"的错误(如果我重新点击"Configure"就会消失),使用Unix,我总是需要手动指定windres,因为cmake无法找到它.
这对Eclipse或其他东西有什么影响吗?
两个生成的Makefile都与Eclipse和MingW一起工作并编译我的项目.
我应该选择什么Makefile?为什么?
这真是一团糟.
CMake在Windows上有许多不同的Makefile生成器:MSYS,MinGW,NMake和Unix.在CDT发电机由工作在Makefile文件生成的顶部也产生了您的Eclipse项目.目前,CDT生成器仅支持MinGW,NMake和Unix.
它们之间的区别在于它使用的"制造"味道.MinGW,MSYS和Unix都是GNU make的变体(在这种情况下,Unix意味着"Cygwin").它们之间的区别主要与命令的执行方式有关,更具体地说,是用于执行命令的shell.GNU make将非常努力地使用"sh.exe"而不是"cmd.exe",这通常是出错的地方:在Makefile中有一个命令,它假设有关用于执行的shell的详细信息.选择GNU make flavor时的另一个问题是找出可用的标准Unix实用程序(sed/grep/etc).一个值得注意的细节是,如果GNU make使用cmd.exe来执行命令,它将不支持parallell构建.
如果您使用Unix Makefile,CMake将假设您的make是Cygwin,并且具有完整的Unix仿真功能.
还要确保你实际运行"正确"的制作.如果你已经生成了Unix Makefiles,但是你的PATH中有MinGW,那么在你的构建树中键入"make"可能会因为奇怪的错误而失败.
但关于你的问题:只要它有效,它真的无所谓.