2015-09-29 5 views
0

Я установил базовый пакет для компиляции C++ с помощью GUI MinGW Installer и CMake. Я создал простой файл .c с hello world и могу использовать cmake. -G «MSYS Makefiles» обычно. Я добавил E: \ Programmation \ MinGW \ bin и E: \ Programmation \ MinGW \ msys \ 1.0 \ bin на мой путь.Msys make in Powershell - Нет такого файла или каталога

Вот мой 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 создается, однако, когда я использую сделать я получаю следующее сообщение об ошибке:

/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 

я могу скомпилировать файл Main .c просто отлично с gcc main.c, а exe создает работы, поэтому проблема заключается в make.exe.

Если я использую его в оболочке msys.bat, расположенной в E: \ Programmation \ MinGW \ msys \ 1.0, он работает так, как должен. Поэтому я предполагаю, что проблема заключается в Powershell и пути. Я думаю, возможно, это связано с тем, как обозначаются жесткие диски, поскольку в ошибке я получаю, что он вызывает мой E: \ disk/e/first, затем E: /. Когда я работаю в msys.bat, я должен написать его так:/e/Users/MyName ...

ответ

2

Это PEBKAC. Проблема не с make.exe, но, скорее, на пути вы пытаетесь использовать ее неправильно.

Сколько раз я должен это говорить? Использование MSYS make.exe (или действительно любой инструментов MSys), в любой среды другой, что оболочка MSYS, которая запускается работает msys.bat, является окончательно неподдерживаемым мейнтейнеров проекта MSys.

Поскольку вы говорите, что проблема уходит, когда вы используете make.exe, как вы должны, (в оболочке MSYS, вызванной запуском msys.bat), это ваша проблема и ваша проблема в одиночку. По-видимому, это не работает, когда вы пытаетесь использовать его ненадлежащим образом (т. Е. От PowerShell): это тяжелая удача; когда вы нарушаете бесплатное программное обеспечение, злоупотребляя им, вы получаете все части.

+0

Хорошо. Не мог найти ответа так, я надеюсь, что в следующий раз кто-то задается вопросом, что они найдут это. – Percee

0

Вопреки принятому ответу, это на самом деле можно сделать это с помощью PowerShell:

sh.exe -c "cd ""$pathToMake""; make" 

Убедитесь, что вы дезинфицировать обратную косую черту для оболочки перед выше вызова.

$pathToMake = $pathToMake -replace "\\", "/" 

Также бин MSYS должен быть на вашем пути, который, как правило, выглядит следующим образом (ваш путь может быть разным):

$env:Path = "C:\GNUstep\msys\1.0\bin;$($env:Path)" 

 Смежные вопросы

  • Нет связанных вопросов^_^