Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 30.05.2017
Сообщений: 25

Компиляция любого файла .cpp автоматически из bat файла

13.06.2018, 22:42. Показов 3593. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно сделать универсальный bat файл, чтобы он смог компилировать файлы .cpp с разными названиями в .exe с таким же названием. Нужно удерживая левую кнопку мыши на файле.cpp переместить на bat файл. Должно появиться "открыть с помощью bat файла".
С консолью очень долго делать.
Стоит windows 10. Использую MinGW (GNU GCC Compiler G++(C++)).

Примерно вот так bat файл выглядит:
g++ название_файла.cpp -Wall -o тоже_самое_название.exe (компилирование)
тоже_самое_название.exe (для запуска)
echo %errorlevel% (узнать какой return)
pause (чтобы не закрывалось)
Миниатюры
Компиляция любого файла .cpp автоматически из bat файла  
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.06.2018, 22:42
Ответы с готовыми решениями:

Компиляция файла cpp
Ситуация: среды visual studio нет и не будет. Имеется файл с расширением cpp. Как его скомпилировать через командную строку? С cs все...

Компиляция стороннего файла *.cpp
public static void ad() { var startInfo = new ProcessStartInfo("cmd", "/c cl pgm.cpp"); ...

Компиляция программы из файла cpp через командную строку
Допустим я написал этот код в стандартном виндовском блокноте #include <iostream> int main(){ std::cout <<...

8
Покинул форум
3701 / 1484 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
14.06.2018, 16:18
В чем сложность?! Берете имя файла, отсекаете от него расширение, добавляя нужное, отдаете оба вышеупомянутых значения компилятору, - все то же проще сделать в bash-скрипте под MinGW. О какой универсальности идет речь?
0
 Аватар для bidstrup
419 / 179 / 27
Регистрация: 11.03.2018
Сообщений: 771
14.06.2018, 17:27
И я спрошу: "В чем сложность?"
Команда g++ a.cpp имеет своим результатом a.exe.
( может у меня какой-то неправильный g++ ? )
0
0 / 0 / 0
Регистрация: 30.05.2017
Сообщений: 25
14.06.2018, 18:15  [ТС]
Если скомпилировать любой файл .cpp без -o и указания названия файла который хочешь получить, всегда будет a.exe .
0
0 / 0 / 0
Регистрация: 30.05.2017
Сообщений: 25
14.06.2018, 18:18  [ТС]
Цитата Сообщение от greg zakharov Посмотреть сообщение
О какой универсальности идет речь?
Нужно просто файл.cpp перенести на batник и он должен запустить cmd где уже будут автоматически выполнены команды.
g++ название_файла.cpp -Wall -o тоже_самое_название.exe
тоже_самое_название.exe
echo %errorlevel%
pause

Фото если что есть, как надо сделать чтобы работало как на фото.
Миниатюры
Компиляция любого файла .cpp автоматически из bat файла  
0
Покинул форум
3701 / 1484 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
14.06.2018, 18:59
Лучший ответ Сообщение было отмечено Sark13 как решение

Решение

Sark13, если непременно командный сценарий, то примерно так (об универсальности судить не берусь):
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@echo off
  setlocal
    set "i=0"
    for %%i in (%*) do set /a "i+=1"
    if %i% neq 1 goto:eof
    if exist "%1" if /i "%~x1" equ ".cpp" (
      g++ "%~1" -Wall -o "%~n1.exe"
      "%~n1.exe"
      pause
    ) else (
      echo:Dude, it is not CPP source code.
      pause
    )
  endlocal
exit /b
1
0 / 0 / 0
Регистрация: 30.05.2017
Сообщений: 25
14.06.2018, 20:07  [ТС]
Спасибо за это. Реально помогло. Я посмотрел на код что-то понял, хоть и не разбираюсь в этом. Понял, что там файл должен оканчиваться на 1, но можно сделать так, чтобы не оканчивалось на 1? Если да, то большое спасибо. Если нет, то всё равно спасибо за код. Можно писать имя файла любое но потом добавлять _1 и тогда всё тоже будет хорошо.
Для себя я там немного доработал:

@echo off
setlocal
set "i=0"
for %%i in (%*) do set /a "i+=1"
if %i% neq 1 goto:eof
if exist "%1" if /i "%~x1" equ ".cpp" (
g++ "%~1" -Wall -o "%~n1.exe"
"%~n1.exe"
echo Return = %errorlevel%
strip "%~n1.exe"
pause
) else (
echoude, it is not CPP source code.
pause
)
endlocal
exit /b

Добавлено через 9 минут
Спасибо за это. Почему нельзя делать имя файла через ","? Например 2,4.cpp .
Для себя я там немного доработал:

@echo off
setlocal
set "i=0"
for %%i in (%*) do set /a "i+=1"
if %i% neq 1 goto:eof
if exist "%1" if /i "%~x1" equ ".cpp" (
g++ "%~1" -Wall -o "%~n1.exe"
"%~n1.exe"
echo Return = %errorlevel%
strip "%~n1.exe"
pause
) else (
echoude, it is not CPP source code.
pause
)
endlocal
exit /b


Зачем там в коде 1?
if exist "%1" if /i "%~x1" equ ".cpp" (
g++ "%~1" -Wall -o "%~n1.exe"
"%~n1.exe"
0
Покинул форум
3701 / 1484 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
14.06.2018, 20:13
Цитата Сообщение от Sark13
Зачем там в коде 1?
А как по вашему должны передаваться параметры командному процессору? Чтобы было понятней: в CPP argv[0] - это %0 в командном языке, argv[1] - %1 и т.д.
0
0 / 0 / 0
Регистрация: 30.05.2017
Сообщений: 25
14.06.2018, 22:16  [ТС]
Ясно. Спасибо за информацию и за bat файл.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.06.2018, 22:16
Помогаю со студенческими работами здесь

Компиляция с BAT-файла
main.cpp #include <iostream> #include <windows.h> #include <cstdio> #include <conio.h> using namespace std; void jump(int...

Internet Explorer не закрывается автоматически по ходу выполнения bat-файла
Помогите с решением, плз есть батничек: @set @x=0 @echo on "C:\Program Files\Internet Explorer\iexplore.exe " -extoff...

Есть три файла. файл main.cpp и Source.cpp знают только Header.h, так как он подключен. как же подключается Source.cpp
main.cpp #include <iostream> #include"Header.h" using namespace std; int main() { A ob; ob.f(); return...

[BAT ФАЙЛ] Для поиска файла и передачи найденого файла на ftp!!!
Вот мой bat файл для поска файла text.txt и передачи его на ftp! Но что-то у меня не получается не приходит файлик text.txt на мой ftp! Bat...

Самоликвидация exe-файла (сконвертированного из bat-файла) по окончании выполнения им программы
Почему не работает самоликвидация батника если его изменить в формат .ехе (через bat to exe )?? И можно ли сделать чтоб заработала?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru