我安装了基本包,用MinGW Installer GUI和CGub编译C++。我用hello world创建了一个简单的file.c文件,可以使用cmake。-G“MSYS Makefiles”正常。我在路径中添加了E:\ Programmation\MinGW\bin和E:\ Programmation\MinGW\msys\1.0\bin。
这是我的CMakeLists.txt:
cmake_minimum_required (VERSION 3.3)
project (Prototype)
set (EXECUTABLE_OUTPUT_PATH bin/${CMAKE_BUILD_TYPE})
file (
GLOB_RECURSE
source_files
src/*
)
add_executable (
my_exe
${source_files}
)
但是,一旦创建了makefile,当我使用make时,将得到以下错误:
/bin/sh:/e/Users/MyName/Documents/GitHub/ProjectName/prototype/c/E:/Programmation/MinGW/msys/1.0/bin/make.exe: No such file or directory
make.exe": *** [all] Error 127
我可以用gcc main.c编译文件main.c,它生成的exe可以正常工作,所以make.exe有问题。
如果我在msys.bat shell中使用它,它位于E:\ Programmation\MinGW\msys\1.0中,它会正常工作。所以我猜问题出在Powershell和路径上。我想这可能是因为硬盘的指定方式,因为在错误中,它会先调用我的E:\ disk/E/然后调用E:/。当我在msys.bat中工作时,我必须这样写:/e/Users/MyName。。。
最佳答案
我是PEBKAC。问题不在于make.exe
,而在于您试图滥用它的方式。
我要说多少次?在任何环境中使用MSYSmake.exe
(或者实际上是任何MSYS工具),MSYS项目维护人员绝对不支持通过运行msys.bat
启动的MSYS shell。
既然你说你的问题消失了,那么当你按照你应该的方式使用make.exe
时(在MSYS shell中,通过运行msys.bat
调用),这就是你的问题,也是你自己的问题。很明显,当你试图不恰当地使用它时(例如,从PowerShell):这是很不幸的;当你破坏自由软件时,通过滥用它,你可以保留所有的部分。
关于c - Powershell中的Msys make-没有此类文件或目录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32843589/