Имя make не распознано как имя командлета
Перейти к содержимому

Имя make не распознано как имя командлета

  • автор:

Подскажите пожалуйста, exe`шник после сборки через Сmake и mingw32-make не запускается

У меня установлен Cmake и MinGW. Оба находятся в переменных средах. Хочу собрать проект. Использую команду cmake .. -G «MinGW Makefiles», после этого запускаю команду mingw32-make. Все собирается, экзешник появляется, но не запускается. Ошибка: Точка входа в процедуру _ZdlPvj не найдена в библиотеке DLL. CMakeLists.txt:

cmake_minimum_required(VERSION 3.0) set(CMAKE_BUILD_TYPE Release) set(CMAKE_CXX_FLAGS "$ -std=c++14 -Wall") project(Packman) add_executable(main main.cpp Constants.h Game.h Ghost.h ICharacter.h Packman.h Pellet.h setConsoleAtributes.h Game.cpp Ghost.cpp Pellet.cpp Packman.cpp SetConsoleAtributes.cpp) 

Запускаю через g++ командой: g++ -o name.exe -std=c++14 -static-libgcc -static-libstdc++ main.cpp Constants.h Game.h Ghost.h ICharacter.h Packman.h Pellet.h setConsoleAtributes.h Game.cpp Ghost.cpp Pellet.cpp Packman.cpp SetConsoleAtributes.cpp и все собирается. Но через Cmake не получается. Подскажите, в чем может быть проблема? Думаю, что в статической линковке, но я не уверен. Если да, то как правильно ее настроить через Cmake? Спасибо, буду рад любой помощи.

Имя make не распознано как имя командлета

Рассмотрим создание первой простейшей программы на C++ с помощью компилятора g++ , который на сегодняшний день является одним из наиболее популярных компиляторов для C++, доступен для разных платформ и который распространяется в рамках пакета компиляторов GCC. Более подробную информацию о g++ можно получить на официальном сайте проекта https://gcc.gnu.org/.

Набор компиляторов GCC распространяется в различных версиях. Для Windows одной из наиболее популярных версий является пакет средств для разработки от некоммерческого проекта MSYS2 . Следует отметить, что для MSYS2 требуется 64-битная версия Windows 7 и выше (то есть Vista, XP и более ранние версии не подходят)

Итак, загрузим программу установки MSYS2 с официального сайта MSYS2:

Установка MSYS для разработки под С++

После загрузки запустим программу установки:

Установка пакета mingw-w64 и msys2 на Windows

На первом шаге установки будет предложено установить каталог для установки. По умолчанию это каталог C:\msys64:

Установка компиляторов C++ MSYS2 на Windows

Оставим каталог установки по умолчанию (при желании можно изменить). На следующем шаге устанавливаются настройки для ярлыка для меню Пуск, и затем собственно будет произведена установка. После завершения установки нам отобразить финальное окно, в котором нажмем на кнопку Завершить

Установка компиляторов MSYS2 на Windows

После завершения установки запустится консольное приложение MSYS2.exe. Если по каким-то причинам оно не запустилось, то в папке установки C:/msys64 надо найти файл usrt_64.exe :

компиляторы MSYS2.exe на Windows

Теперь нам надо установить собственно набор компиляторов GCC. Для этого введем в этом приложении следующую команду:

pacman -S mingw-w64-ucrt-x86_64-gcc

Для управления пакетами MSYS2 использует пакетный менеджер Packman. И данная команда говорит пакетному менеджеру packman установить пакет mingw-w64-ucrt-x86_64-gcc , который представляет набор компиляторов GCC (название устанавливаемого пакета указывается после параметра -S ).

Установка компиляторов MSYS2 на Windows

и после завершения установки мы можем приступать к программированию на языке C++. Если мы откроем каталог установки и зайдем в нем в папку C:\msys64\ucrt64\bin , то найдем там все необходимые файлы компиляторов:

Компилятор G++ на Windows

В частности, файл g++.exe как раз и будет представлять компилятор для языка С++.

Далее для упрощения запуска компилятора мы можем добавить путь к нему в Переменные среды. Для этого можно в окне поиска в Windows ввести «изменение переменных среды текущего пользователя»:

изменение переменных среды текущего пользователя в Windows

Нам откроется окно Переменных среды:

Добавление GCC в переменные среды на Windows

И добавим путь к компилятору C:\msys64\ucrt64\bin :

Определение пути к компилятору G++ в переменных среды на Windows

Чтобы убедиться, что набор компиляторов GCC успешно установлен, введем следующую команду:

gcc --version

В этом случае нам должна отобразиться версия компиляторов

Версия компиляторов MSYS2 GCC на Windows

Создание первой программы

Итак, компилятор установлен, и теперь мы можем написать первую программу. Для этого потребуется любой текстовый редактор для набора исходного кода. Можно взять распространенный редактор Visual Studio Code или даже обычный встроенный Блокнот.

Итак, создадим на жестком диске С папку для исходных файлов. А в этой папке создадим новый текстовый файл, который переименуем в hello.cpp . То есть по сути файлы исходного кода на С++ — это обычные текстовые файлы, которые, как правило, имеют расширение cpp .

Первая программа на С++

В моем случае файл hello.cpp находится в папке C:\cpp.

Теперь определим в файле hello.cpp простейший код, который будет выводить строку на консоль:

#include // подключаем заголовочный файл iostream int main() // определяем функцию main < // начало функции std::cout // конец функции

Для вывода строки на консоль необходимо подключить нужный функционал. Для этого в начале файла идет строка

#include

Данная строка представляет директиву препроцессора, которая позволяет подключить библиотеку iostream. Эта библиотека нужна для вывода строки на консоль.

Далее идет определение функции main . Функция main должна присутствовать в любой программе на С++, с нее собственно и начинается выполнение приложения.

Функция main состоит из четырех элементов:

  • Тип возвращаемого значения . В данном случае это тип int . Этот тип указывает, что функция должна возвращать целое число.
  • Имя функции . В данном случае функция называется main.
  • Список параметров . После имени функции в скобках идет список параметров. Но в данном случае скобки пустые, то есть функция main не принимает параметров.
  • Тело функции . После списка параметров в фигурных скобках идет тело функции. Здесь и определяются собственно те действия, которые выполняет функция main.

В теле функции происходит вывод строки на консоль. Для обращения к консоли используется стандартный поток вывода std::cout . С помощью оператора

В конце осуществляем выход из функции с помощью оператора return . Так как функция должна возвращать целое число, то после return указывается число 0. Ноль используется в качестве индикатора успешного завершения программы.

После каждой инструкции в языке C++ ставятся точка с запятой.

Каждая строка снабжена комментарием. Все, что написано после двойного слеша // представляет комментарий. Комментарий не учитывается при компиляции приложения, и не является частью программного кода, а служат лишь для его описания. Комментарий позволяет понять, что делает программа.

Язык программирования С++ в Visual Studio Code

Теперь скомпилируем этот файл. Для этого откроем командную строку Windows и вначале с помощью команды cd перейдем к папке с исходным файлом:

cd C:\cpp

Чтобы скомпилировать исходный код, необходимо компилятору gcc передать в качестве параметра файл hello.cpp:

g++ hello.cpp -o hello

Дополнительный необязательный параметр -o hello указывает, что скомпилированный файл будет называться hello.exe. Если не указать этот параметр, то файл будет называться по умолчанию - a.exe.

После выполнения этой команды будет скомпилирован исполняемый файл, который в Windows по умолчанию называется hello.exe. И мы можем обратиться к этому файлу, и в этом случае консоль выведет строку "Hello METANIT.COM!", собственно как и прописано в коде.

Запуск компилятора G++ на Windows

Если вместо командной строки используется оболочка PowerShell, то для запуска файла надо прописать "./hello".

Стоит отметить, что мы можем совместить компиляцию и выполнение следующей командой:

g++ hello.cpp -o hello.exe & hello.exe

Makefile Tools doesn't work for some reason

I want to use the make command to compile my files. I installed Makefile Tools from the Marketplace, created a Makefile in my directory, but when I use the make command, it throws an error:

    make main.cpp
 + CategoryInfo : ObjectNotFound: (make:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException 

which means that make was not found. I didn't touch any configuration files. I searched the Net and found nothing about it.

asked Nov 12, 2022 at 13:55
99 1 1 silver badge 6 6 bronze badges

1 Answer 1

It's helpful to us if the question provides more details about your environment: what is "Makefile Tools"? Which "Marketplace"? What operating system are you using? Also, when formatting command output in your question please use the "Code Sample" format, not the "Blockquote" format, so that SO doesn't reformat the text.

If you mean the Visual Code extension "Makefile Tools", then that extension only provides an interface to running make and managing Makefiles; it doesn't provide the actual make program itself.

If you're using a Windows system you will have to go find a make program and install it on your system before you can run it. There are various options depending on what environment you want to build in.

Laravel на Homestead. Ошибка при запуске php artisan — имя «php» не распознано как имя командлета, функции. Как исправить?

Согласно документации, установил и развернул проект на Laravel под Homestead, Vagrant up- все работает.
Но когда пытаюсь из директории laravel в консоле запустить команду php artisan make:controller PhotoController --resource

PS E:\for_laravel\projects\test\laravel> php artisan make:controller PhotoController --resource php : Имя "php" не распознано как имя командлета, функции, файла сценария или выполняемой программы. Проверьте правильность написания имени, а также наличие и правильность пути, после чего повторите попытку.

Я так понимаю, что необходимо в системе windows путь PATH к PHP, Но PHP находится где-то на виртуальной машине Homestead. Как решить проблему?

  • Вопрос задан более трёх лет назад
  • 750 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *