Перейти к содержимому

Как запустить программу c через командную строку

  • автор:

компиляция программы через командную строку

Компилятор — это программа, которая преобразует код, написанный на одном из языков программиро-вания (в данном случае, это язык C#) в машинный код. Сам компилятор csc.exe находится в пакете .NET Framework, а не в самой среде Visual Studio. Поэтому, написать код программы можно в любом текстовом редакторе, а скомпилировать и запустить программу на выполнение можно из командной строки. Для этого нужно задать путь, чтобы вызывать компилятор из командной строки, не вводя полный путь расположения файла csc.exe.

Найдите компилятор csc.exe. Windows + E, выберите Локальный диск C, в строке поиск введите csc.exe. Выделите нужный файл последней версии, это Framework 4.0.

Откройте его правой кнопкой мыши, выберите Свойство. Скопируйте путь.
C:\Windows\Microsoft.NET\Framework\v4.0.30319\

Добавьте этот путь в системную переменную. Windows + Pause. Дополнительные параметры системы. Переменные среды.

Выберите системные переменные. Path. Нажмите кнопку Изменить. Введите скопированный путь ком-пилятора.

В конце точку с запятой ставить не нужно. Внимание! Введите только сам путь, файл csc.exe указывать не нужно. Нажмите ОК. Перезагрузите компьютер.

Компиляция программы из файла cpp через командную строку

Как в windows сделать динамическую библиотеку из файлов .cpp через командную строку ?
Здраствуйте, вопрос состоит в следующем, как у Виндовс через командную строку сделать .

Как открыть программу написанную на c++ через командную строку, если в пути программы есть пробелы
путь программы C:\la la\ve.exe пишу в командной строке: start C:\la la\ve.exe и выдает такое.

Вывод текста описания команд в консоль командной строки при запуске программы через командную строку
Всем привет! Есть такая программка которая запускается через командную строку с параметром.

5496 / 4891 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
Каким компилятором?
Регистрация: 11.10.2012
Сообщений: 118

alsav22, через командную строку, или подскажите мне код ( .bat ) — чтобы в результате получить exe — файл

5496 / 4891 / 831
Регистрация: 04.06.2011
Сообщений: 13,587

Имя компилятора и main.cpp. Например, g++ main.cpp

Добавлено через 55 секунд

ЦитатаСообщение от хАЛЕКСЕЙх Посмотреть сообщение

alsav22, через командную строку, или подскажите мне код ( .bat ) — чтобы в результате получить exe — файл

Я понял, что через командную, но нужен компилятор в системе.

Добавлено через 1 минуту
IDE какя-нибудь стоит?

Регистрация: 11.10.2012
Сообщений: 118

alsav22, а без IDE нельзя?

Добавлено через 4 минуты
у меня есть Visual Studio 2008, Visual Studio 2012, Dev-C++, Code::Block — но на них долго компилируются файлы, хотельсь бы чтобы для лёгкик программ, быстро компилировались

Добавлено через 47 секунд

ЦитатаСообщение от alsav22 Посмотреть сообщение

Имя компилятора и main.cpp. Например, g++ main.cpp
да вроде того
5496 / 4891 / 831
Регистрация: 04.06.2011
Сообщений: 13,587

Можно. Без компилятора нельзя. ОС какая? Скачайте компилятор. Если Windows, то, например, mingv.

Добавлено через 3 минуты

ЦитатаСообщение от хАЛЕКСЕЙх Посмотреть сообщение

у меня есть Visual Studio 2008, Visual Studio 2012, Dev-C++, Code::Block

Если есть и компиляторы прописаны в переменных среды (папка bin с компилятором), то переходите в папку с main.cpp и делаете, как я писал в 4 посте.

Регистрация: 11.10.2012
Сообщений: 118

ЦитатаСообщение от alsav22 Посмотреть сообщение

ЦитатаСообщение от alsav22 Посмотреть сообщение

Скачайте компилятор. Если Windows, то, например, mingv.
кинь ссылку пожалуйста ,и если можно, то обьясни в пару слов, зачем он нужен
5496 / 4891 / 831
Регистрация: 04.06.2011
Сообщений: 13,587

Если есть среды (Dev-C++, Code::Blocks), то можно их компиляторы использовать. Это то же самое, что если скачать.

Добавлено через 45 секунд

ЦитатаСообщение от хАЛЕКСЕЙх Посмотреть сообщение

,и если можно, то обьясни в пару слов, зачем он нужен

Чтобы из main.cpp exe сделать.

Добавлено через 1 минуту
С командной строкой умеете работать?

Регистрация: 11.10.2012
Сообщений: 118

alsav22, я так и не понял, я где-то видел или читал, что люди писали код на стандартном блокноте потом через командную сроку компилировали этот файл в exe

ЦитатаСообщение от alsav22 Посмотреть сообщение

сли есть среды (Dev-C++, Code::Blocks)

они долго компилируют + они на английском + они походу битые ( тоесть в самой программе ошибки в коде, я такую скачал )

Добавлено через 57 секунд

ЦитатаСообщение от alsav22 Посмотреть сообщение

С командной строкой умеете работать?
нет, но я и хочу научится
5496 / 4891 / 831
Регистрация: 04.06.2011
Сообщений: 13,587

ЦитатаСообщение от хАЛЕКСЕЙх Посмотреть сообщение

alsav22, я так и не понял, я где-то видел или читал, что люди писали код на стандартном блокноте потом через командную сроку компилировали этот файл в exe

Всё правильно. Для этого и нужен компилятор. В каждой среде он присутствует. Но в средах есть ещё много чего. Какой компилятор использовать, из среды или отдельно скачанный, значения не имеет. Компилятор из среды использовать — это не значит среду использовать.
Где у вас файл main.cpp находится?

Выполнение программ — Основы командной строки

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

Программа, независимо от того, что она делает — это всего лишь файл или набор файлов на диске. Один из этих файлов обязательно должен быть исполняемым. Помните тот самый x из урока про права доступа? Так вот, выполнить программу можно, только если она исполняемая, иначе попытка запустить ее приведет к ошибке.

Весь механизм по запуску программ в *nix-системах основан на соглашениях. Когда мы вводим некоторую команду, например, ls , командная оболочка начинает поиск исполняемого файла с именем ls в списке директорий, указанном в переменной окружения PATH :

echo $PATH /home/hex/.local/bin:/home/hex/bin/:/home/hex/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 

Директории друг от друга отделяются двоеточием. В этом списке присутствуют как общесистемные пути, так и специфичные пути для конкретного пользователя. В вашем случае PATH будет другой.

Поиск программы выглядит следующим образом: командная оболочка перебирает директории слева направо и ищет директорию с файлом ls , доступным для исполнения. Если такого файла не оказалось, то выводится ошибка:

command not found 

Обратите внимание, что здесь важен порядок. Если файл с одним и тем же именем находится одновременно в нескольких директориях, то в первую очередь мы найдем файл в директории, расположенной левее.

Если вам интересно узнать, а где лежит исполняемый файл конкретной программы, то можно воспользоваться командой type (а еще which и whereis ):

type cp cp is /bin/cp whereis cp cp: /bin/cp which cp /bin/cp ls -al /bin | grep cp -rwxr-xr-x 1 root root 141528 Jan 18 2018 cp 

По выводу выше видно, что файл cp принадлежит суперпользователю, но исполнять его могут все.

Скорее всего, вы заметили, что почти все пути к исполняемым файлам программ оканчиваются на директории bin. По общему соглашению исполняемые файлы в таких директориях называют бинарниками. Пакетные менеджеры знают о бинарниках и во время установки программ переносят их в одну из директорий, входящих в переменную PATH . Для вновь устанавливаемых программ это обычно /usr/local/bin.

Иногда возникает необходимость расширить PATH . Особенно часто так происходит, когда мы устанавливаем программу через пакетные менеджеры языков программирования. Делать это надо осторожно — убедившись в том, что по-другому нельзя.

В некоторых ситуациях программа, которую вы хотите запустить, не лежит по путям поиска, прописанным в PATH . Более того, она и не должна там оказаться. Представим, что исполняемый файл программы находится прямо в текущей директории. Логично предположить, что мы можем набрать имя файла и запустить его, и программа выполнится. На самом деле этого не произойдет.

Такое поведение сделано в целях безопасности: возможно, вы хотели запустить какую-то стандартную программу, а злоумышленник положил в текущую директорию вредоносную программу с таким же именем. По этой причине, прямой запуск программ всегда должен быть путем до файла — например, path/to/executable/file. А если файл лежит в текущей директории? Здесь нам поможет обращение через точку ./ :

pwd /home/hex cd test/ ls -al total 16 drwxr-xr-x 2 hex hex 4096 Sep 10 15:24 . drwxr-xr-x 1 hex hex 4096 Sep 10 15:24 .. -rwxr-xr-x 1 hex hex 60 Sep 10 15:24 executable executable bash: executable: command not found ./executable Hello from executable! 

Разберем этот процесс пошагово:

  1. Из домашней директории переходим в директорию test
  2. Находим в директории test исполняемый файл executable, который при запуске выводит сообщение Hello from executable!
  3. Пытаемся запустить по имени файл executable и получаем ошибку
  4. Пробуем запустить через точку и получаем успешный запуск

Изменение переменной PATH

В общем случае мы не рекомендуем менять переменную PATH самостоятельно. При правильной установке большинство программ самостоятельно добавляют свои исполняемые файлы в нужные места. В некоторых случаях они просят об этом пользователя — дают подсказки, какие файлы и куда нужно добавить после установки.

Чтобы вручную изменить переменную PATH , нужно поправить один из конфигурационных файлов Bash. Эти файлы лежат в домашней директории пользователя и могут называться так:

В зависимости от настроек терминала, Bash загружает либо одни файлы, либо другие. Если в вашей домашней директории есть файл .bashrc, то попробуйте использовать его. Если нет, пробуйте остальные файлы в том порядке, в котором они приведены выше. Добавьте в этот файл следующую строку:

export PATH=$PATH:/path/to/directory 

В этой строке вам нужно заменить /path/to/directory на путь до директории с исполняемыми файлами. После этих манипуляций не забудьте перезапустить терминал.

Самостоятельная работа

Попробуйте узнать, где в вашей системе лежит программа tree , установленная на одном из прошлых уроков.

Дополнительные материалы
  1. Перечень наиболее часто используемых команд
  2. Как использовать коды завершения в Bash-скриптах
  3. Как создать псевдоним для команд в Bash

Аватары экспертов Хекслета

Остались вопросы? Задайте их в разделе «Обсуждение»

Вам ответят команда поддержки Хекслета или другие студенты

Об обучении на Хекслете

  • Статья «Как учиться и справляться с негативными мыслями»
  • Статья «Ловушки обучения»
  • Статья «Сложные простые задачи по программированию»
  • Урок «Как эффективно учиться на Хекслете»
  • Вебинар « Как самостоятельно учиться »

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов

Наши выпускники работают в компаниях:

Компиляция программы на Си на командной строке Windows

Есть ли возможность через командную строку скомпилировать данные программы ? Так как теории много , а на практику времени не остается, хотел бы вот так схитрить.

Что я хочу ?
Например, создаю файл file.c внутрь файла пишу задание , а потом через командую строку компилирую данную программу.

Подскажите теперь, как и что писать cmd , что бы скомпилировать не сложные программы

Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Компиляция программы на C# в командной строке
using System; using System.Collections.Generic; using System.Linq; using System.Text; using.

Компиляция в командной строке (cl.exe) под платформы Windows XP и выше
Здравствуйте! Столкнулся с проблемой что во время компиляции в командной строке, выходной файл.

Компиляция в командной строке
Всем привет. Ребят не могу откомпилить файлик. Имеется 2 файлика директория котрых: .

Компиляция в командной строке
Всем привет! Ребят, тут вопрос такой. У меня имеется папка допустим называется "Project", в ней.

3802 / 2354 / 413
Регистрация: 09.09.2017
Сообщений: 10,206

Лучший ответ

Сообщение было отмечено robben_55 как решение

Решение

Ищете какой компилятор установлен, ищете путь к нему, прописываете его в %PATH%, либо просто куда-то запоминаете.
Ищете на него документацию и смотрите какие ключи для чего предназначены.
Запускаете компилятор с нужными ключами.
Например:
установлен Dev-C++ (gcc-mingw) в C:\Program files (x86)\Dev-Cpp , там можно найти собственно компилятор gcc, он расположен в .\WinGW64\bin\gcc.exe
Настраиваем PATH:

> PATH=%PATH%;C:\Program Files (x86)\Dev-Cpp\MinGW64\bin

но лучше это сделать через переменные операционной системы. Правда я не особо представляю как это делается.
запускаем компилятор:

> gcc main.c -Wall -Wextra -Wpedantic -Werror -Os -o prog.exe

либо, если не настраивали PATH:

> C:\Program Files (x86)\Dev-Cpp\MinGW64\bin\gcc main.c -Wall -Wextra -Wpedantic -Werror -Os -o prog.exe

Если программа была написана правильно, появится файл prog.exe, который можно там же в консоли проверить

Добавлено через 2 минуты
UPD: в Win7 это делается кликом правой кнопкой на «мой компьютер» -> «свойства» -> слева кнопка «дополнительные параметры системы» -> вкладка «дополнительно» -> кнопка «переменные среды» -> выбираем PATH и редактируем

87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Компиляция в командной строке.
Ребят задание скомпилировать код в командной строке vc++ и запустить программу.Делаю так: .

Компиляция кода в командной строке
на паре нам показывали как работать с прогой, написанной на ассемблере — cmd-> выбор директории ->.

Не работает компиляция в командной строке
Здравствуйте. Перестали компилироваться проекты из командной строки. До этого вроде бы все было.

Компиляция программы из командной строки
Всем привет, не знаю в чем причина. Скину фотки посмотрите. Всё перепробовал от перестановки jdk до.

Компиляция программы из командной строки
как скомпилировать программу написанную в обычном блокноте на cpp через командную строку?

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

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