我安装了基本包,用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/

10-11 00:31