Как скомпилировать в исполняемый файл
Обновлено: 21.11.2024
Для большей части программирования в Visual Studio вам потребуется создавать и использовать "проекты". Проекты — это способ, с помощью которого Visual Studio организует и поддерживает различные файлы, используемые для программы. Некоторые из этих файлов являются файлами, которые вы создаете для своего кода C. Другие файлы включают «объектные» файлы, созданные компилятором при компиляции кода, «исполняемый» файл (*.exe), который Visual Studio создает, связывая скомпилированный код с другим кодом, библиотеками и т. д., которые необходимы для запуска. ваша программа, а также различные файлы, используемые Visual Studio для организации и отслеживания статуса вашего проекта.
Создание нового проекта
Чтобы создать новый проект:
- Перейдите в меню "Файл" и выберите "Создать". Должно появиться диалоговое окно "Создать".
- Диалоговое окно «Создать» должно иметь четыре вкладки («Файлы», «Проекты», «Рабочие пространства», «Другие документы»), расположенные в верхней части окна. Выберите вкладку Проекты. После этого должен появиться список типов проектов, которые можно создать.
- Нажмите Консольное приложение Win32 в списке проектов.
- Введите имя проекта в поле «Имя проекта» справа от диалогового окна.
- Выберите каталог для проекта в поле Location справа от диалогового окна.
- После того, как вы ввели имя и каталог для файла, нажмите кнопку ОК.
- После того как вы нажмете кнопку OK, диалоговое окно должно отобразиться в виде набора вариантов для типа проекта или приложения. Выберите «Пустой проект», нажав кнопку рядом с этим вариантом.
- Выбрав тип проекта, нажмите кнопку "Готово". Затем появится диалоговое окно с сообщением о том, что было создано пустое консольное приложение (без файлов кода C — вам нужно будет создать их позже).
- Нажмите кнопку OK, чтобы закрыть диалоговое окно с новой информацией о проекте. Теперь вы готовы начать вводить свой программный код C.
Создание и добавление файлов в проект
Перед созданием и добавлением файлов в проект убедитесь, что вы создали проект и он открыт. Если проект не открыт, сначала откройте его.
Чтобы начать добавлять файлы в проект:
- Перейдите в меню "Файл" и выберите "Создать". Должно появиться диалоговое окно "Создать".
- Диалоговое окно «Создать» должно иметь четыре вкладки («Файлы», «Проекты», «Рабочие пространства», «Другие документы»), расположенные в верхней части окна. Выберите вкладку «Файлы». После этого должен появиться список типов проектов, которые можно создать.
- Нажмите исходный файл C++ в списке типов файлов, которые можно создать.
- Убедитесь, что флажок "Добавить в проект" установлен и название вашего проекта отображается в поле непосредственно под полем "Добавить в проект".
- Введите имя файла в поле Имя файла. Обязательно используйте расширение «.c» для имени файла, например. грамм. "мой файл.c". Если вы не укажете расширение, файл будет создан как файл C++, что впоследствии может вызвать некоторые проблемы.
- Нажмите кнопку OK после ввода необходимой информации для создания нового файла. Затем новый файл следует открыть и отобразить в окне Visual Studio, чтобы вы могли начать связывание информации.
- Обязательно сохраняйте файл (с помощью команды «Сохранить» в меню «Файл») часто и по завершении ввода информации. Нажмите «Консольное приложение Win32» в списке проектов.
Создание исполняемого файла («Сборка» проекта)
Прежде чем вы сможете запустить программу, вы должны создать проект и добавить в него файлы. Для компиляции, компоновки и запуска, т.е. е. чтобы «создать» свою программу, сначала убедитесь, что проект открыт.
Что такое исполняемый файл? Исполняемый файл — это программный файл, который можно запустить, с набором инструкций или опций, позволяющих ему что-то делать на вашем ПК. Исполняемые файлы есть почти во всех современных операционных системах, но у большинства людей они ассоциируются с форматом файлов Windows EXE.
Обычно вы увидите файл EXE при установке нового программного обеспечения или запуске программы на своем ПК, где используется расширение EXE. Если вы создаете собственное программное обеспечение, вы даже можете создать собственный исполняемый файл для запуска, установки или распространения. Если вам интересно узнать больше об исполняемых файлах и о том, как создать исполняемый файл, вот что вам нужно сделать.
Риски исполняемых (EXE) файлов
Когда вы запускаете исполняемый файл, вы даете ему разрешение на выполнение содержащихся в нем инструкций. Так работает любое программное обеспечение, от простых скриптов, состоящих из нескольких строк, до сложных программ с миллионами строк кода.
Прежде чем запускать или создавать исполняемый файл, следует знать о потенциальных рисках.Исполняемые файлы могут содержать инструкции в исходном коде, которые могут повредить ваш компьютер.
Он может указать вашему компьютеру удалить другие файлы или отправить информацию во внешний источник. Это определение вредоносного ПО, созданного для причинения вреда за ваш счет.
Перед запуском любого исполняемого файла, особенно если он запрашивает административные разрешения во всплывающем окне контроля учетных записей, следует проверить файл на наличие вредоносных программ с помощью системы безопасности Windows или собственного стороннего антивирусного программного обеспечения, такого как Malwarebytes. Вы также должны устанавливать или запускать программное обеспечение только из источников, которым вы абсолютно доверяете.
Если вы создаете собственное программное обеспечение для запуска, убедитесь, что код не предназначен для доступа к каким-либо важным файлам. Хотя Windows обычно предотвращает несанкционированный доступ к системным файлам с помощью UAC, дважды проверьте свой код, прежде чем запускать его, чтобы убедиться, что программное обеспечение не может нанести вред вашему компьютеру.
Открытие исполняемых (EXE) файлов в Windows
Если вы хотите открыть исполняемый файл в Windows, это можно сделать несколькими способами. Windows автоматически распознает формат EXE-файла как исполняемый файл, поэтому обычно его можно открыть с рабочего стола, из проводника Windows, с помощью меню «Пуск» Windows (для установленного программного обеспечения) или с помощью окна «Выполнить».
- Чтобы открыть файлы EXE на рабочем столе или в проводнике Windows, дважды щелкните файл. Это даст указание Windows открыть его.
- Список установленных программ в меню "Пуск" Windows – это ярлыки для EXE-файлов этих программ (например, Chrome.exe для Google Chrome). Нажмите значок меню "Пуск" (или нажмите клавишу Windows на клавиатуре), затем нажмите один из пунктов, чтобы запустить программу.
- Чтобы использовать окно команды «Выполнить» для запуска EXE-файла, нажмите клавишу Windows + R на клавиатуре. Либо щелкните правой кнопкой мыши значок меню "Пуск" и выберите пункт "Выполнить".
- В окне команды «Выполнить» найдите исполняемый файл, нажав кнопку «Обзор», или введите путь к файлу напрямую. Если вы хотите запустить EXE-файл, нажмите OK.
- Если EXE-файл запрашивает административный доступ, вам нужно разрешить его запуск во всплывающем окне UAC. Нажмите Да, чтобы разрешить это.
- Если исполняемый файл не запускается (например, он может быть разработан для более старой версии Windows), Windows остановит его запуск. Вы также можете увидеть сообщение об ошибке. В этом случае нажмите "Закрыть" и найдите альтернативную версию файла для запуска.
Как создать исполняемый файл в Windows
Если вы хотите создать свои собственные исполняемые файлы в Windows, вы можете это сделать, но это не так просто, как переименовать файл и добавить .exe в его конец.
Вам нужно будет закодировать программное обеспечение, которое вы хотите запустить, на выбранном вами языке программирования, а затем скомпилировать его в виде файла, который можно будет выполнить. Однако большинство пользователей захотят создать более простые исполняемые файлы, например файлы установщика для установки программного обеспечения.
Для этого в Windows можно использовать встроенный мастер IExpress, но это программное обеспечение очень старое и давно не обновлялось. Лучшим вариантом является использование Inno Setup с открытым исходным кодом или, для базовых самораспаковывающихся EXE-файлов, вы можете использовать 7-Zip.
Файл EXE, созданный с помощью 7-Zip, на самом деле является архивным файлом SFX. Этот архивный файл в формате EXE автоматически извлечет все включенные файлы на ваш компьютер, что делает его идеальным для простого развертывания программного обеспечения.
Если вы хотите поделиться файлами с несколькими пользователями, не беспокоясь о том, что у них установлено нужное программное обеспечение, создание такого файла будет хорошим вариантом.
- Чтобы создать EXE-файл с помощью 7-ZIP, поместите файлы в папку в проводнике Windows. Щелкните папку правой кнопкой мыши и выберите 7Zip > Добавить в архив.
- В окне «Параметры» установите флажок «Включить архив SFX». Вы также захотите установить формат архива на 7z, метод сжатия на LZMA2 и уровень сжатия на нормальный. Нажмите OK, чтобы создать файл.
Хотя это и не настоящий EXE-файл, он выглядит и ведет себя как один, что упрощает создание исполняемого файла, с помощью которого можно распространять программное обеспечение или файлы, созданные вами, среди других.
В противном случае, если вы хотите создать «настоящий» исполняемый файл, вам нужно научиться программировать.
Запуск исполняемых файлов на Mac или Linux
То, как исполняемые файлы работают в Windows, полностью отличается от того, как программы работают на других платформах, таких как Linux или macOS. На этих платформах есть исполняемые файлы, но они не в формате EXE.
Например, в Linux любой файл может быть исполняемым, но для запуска его как программы с помощью chmod требуется специальный флаг прав доступа к файлу. Например, команда chmod +x file даст файлу с именем file разрешение на выполнение.
В macOS используется несколько иной метод запуска программного обеспечения. Если приложение не было установлено из App Store и не от разработчика, которого он знает или которому доверяет, то запуск приложения будет запрещен. Вам нужно будет разрешить это в меню «Системные настройки» > «Безопасность и конфиденциальность».
Однако macOS как система на основе Unix поддерживает команду chmod, позволяющую выполнять более простые сценарии с помощью приложения «Терминал». Например, если вы разработали сценарий Python, вы можете использовать команду chmod +x для его запуска.
Вы также можете использовать эмулятор WINE для Linux и macOS для запуска и установки файлов Windows EXE на этих платформах. Разработанный для эмуляции определенных инструкций и библиотек Windows, использование WINE для запуска EXE-файла будет иметь разный уровень успеха.
Вы можете проверить, насколько хорошо популярное программное обеспечение будет работать с WINE, проверив базу данных WineHQ.
Запуск исполняемых файлов в Windows 10
Ничто не мешает вам создавать собственное программное обеспечение, особенно если вы объединяете его с пакетами установщика Windows, чтобы упростить его установку. Однако для большинства пользователей Windows 10 файлы EXE предназначены для запуска, а не для создания. Пока вы запускаете программное обеспечение только из источников, которым доверяете, исполняемые файлы должны быть относительно безопасными.
Убедитесь, что вы регулярно запускаете сканирование на наличие вредоносных программ, и, если вы действительно не уверены в безопасности запуска исполняемого файла, вы можете использовать режим песочницы Windows 10 для запуска программного обеспечения в изолированном контейнере, чтобы проверить его. Если EXE-файл опасен, он не повредит вашу основную установку Windows.
Бен Стоктон (Ben Stockton) – внештатный писатель-технолог из Великобритании. В прошлой жизни Бен был преподавателем колледжа в Великобритании, обучая подростков и взрослых. Покинув класс, Бен воспользовался своим педагогическим опытом и применил его к написанию технических практических руководств и учебных пособий, специализирующихся на Linux, Windows и Android. Он имеет степень в области истории и аспирантуру в области вычислительной техники. Прочитать полную биографию Бена
Понравился ли вам этот совет? Если это так, загляните на наш канал YouTube на нашем родственном сайте Online Tech Tips. Мы охватываем Windows, Mac, программное обеспечение и приложения, а также предлагаем множество советов по устранению неполадок и обучающих видеороликов. Нажмите кнопку ниже, чтобы подписаться!
На этапе разработки разработчик выполняет несколько процессов установки и написания кода для создания и запуска приложения. Но конечные пользователи заинтересованы только в запуске приложения, а не в базовом коде и процессах.
Это вызывает необходимость в простом исполняемом файле, который может работать в любой операционной системе, не требуя от пользователя выполнения других действий для запуска приложения.
В этом руководстве мы узнаем, как создавать исполняемые файлы для нашего приложения Node.js. Затем мы скомпилируем наши файлы JavaScript в исполняемый файл.
Оглавление
Ключевые выводы
К концу этого руководства вы узнали следующее:
- Что такое файлы .exe и их важность.
- Пакеты, которые мы можем использовать для компиляции вашего приложения Node.js в файлы .exe.
- Создание простого приложения Node.js.
- Компиляция файлов Node.js в исполняемый файл для различных операционных систем.
- Запуск исполняемого файла в операционной системе.
Предпосылки
Чтобы быстро следовать этому руководству, вам потребуются как минимум следующие требования:
- Базовые навыки веб-разработки.
- Некоторые навыки программирования на JavaScript.
- Node.js установлен на вашем компьютере. Если нет, загрузите его здесь.
- IDE. Я настоятельно рекомендую Visual Studio Code, который является бесплатным и легко настраиваемым. Вы можете скачать его отсюда.
- Стабильное подключение к Интернету.
Если вы все настроены на вышеуказанные требования, давайте рассмотрим некоторые пакеты для достижения нашей цели.
Что такое исполняемые файлы (.exe)
Исполняемые файлы (файлы .exe): это файлы, содержащие набор закодированных инструкций, которые выполняются последовательно, когда пользователь щелкает файл или запускает его.
.exe — это расширение Windows, обозначающее исполняемый файл. Другие операционные системы также имеют исполняемые файлы, но с другими расширениями. Например, в операционных системах на основе Linux или Unix файлы, оканчивающиеся на расширения .bin , .elf или [none], являются исполняемыми, а в MacOS у них отсутствуют расширения.
Мы сосредоточимся на создании исполняемых файлов Windows и коснемся некоторых других операционных систем по ходу дела.
Плюсы исполняемых файлов
Давайте посмотрим, почему пользователи в первую очередь предпочитают исполняемые файлы.
Некоторые преимущества исполняемых файлов включают:
Быстрое выполнение без кода: для запуска файла требуется всего один клик, и все. Для выполнения программы не требуется запускать команды на терминале.
Предотвращение нежелательного изменения кода. Предотвращает нежелательные ошибки, возникающие из-за незапланированного и случайного изменения исходного кода.
Поддерживает дистрибутив: поскольку аппарат не зависит от оборудования, пользователю не нужно устанавливать какие-либо пакеты или зависимости. Это позволяет запускать несколько экземпляров кода на любом компьютере без дополнительных требований.
Используемые пакеты
-
: это простая утилита командной строки, которая компилирует ваше приложение Node.js в один исполняемый файл. По умолчанию он преобразует его в исполняемый файл Windows. Вы можете быстро перейти к его разделу, нажав здесь. : это пакет Node.js, который может конвертировать ваше приложение Node.js в несколько исполняемых файлов для разных операционных систем (все сразу) или для отдельной операционной системы. Вы можете быстро перейти к его разделу, нажав здесь.
Теперь мы получим простое запущенное приложение Node.js и будем использовать его в качестве нашего приложения.
Простое веб-приложение
Это веб-приложение будет работать на локальном хосте с портом 5000 и отображать изображения, найденные в папке изображений. Сначала создайте каталог с именем «executable» и создайте файлы и папки, как показано в структуре папок ниже.
Инициализируйте проект с помощью:
Установите пакеты, необходимые для проекта, используя:
Структура папки
Структура папок приложения будет выглядеть так, как показано ниже:
Просмотры
Изображения
В папку с изображениями загрузите из Интернета бесплатное телевизионное изображение размером 760 × 380 и назовите его «tv1.jpg». Вы можете скачать образец изображения здесь.
index.html
Код разметки HTML выглядит следующим образом:
style.css
index.js
Примечание: используйте функцию getDir() или path.join вместо __dirname при использовании экспресс-маршрутизации или быстрой маршрутизации, чтобы избежать ошибок.
package.json
Автоматически сгенерированный код будет выглядеть так, как показано ниже:
Вы можете найти код в этом репозитории.
Откройте встроенный терминал кода Visual Studio, нажав Ctrl + на ПК или Control + Shift + на Mac.
Запустите приложение, используя следующую команду на терминале, чтобы получить вывод «Server at 5000», используя:
Откройте браузер и откройте приложение, посетив localhost:5000 . После этого давайте воспользуемся пакетами для преобразования приложения в исполняемый файл Windows.
Давайте скомпилируем наш проект в исполняемый файл со всеми необходимыми пакетами и ресурсами. Помимо «node_modules», другим необходимым ресурсом, который также находится в корневом каталоге, является папка «views».
Пакеты Node.js будут добавлены автоматически, поэтому мы укажем только другие необходимые ресурсы.
установка nexe
Выполните следующую команду в терминале, чтобы установить nexe глобально:
Если вы используете Ubuntu, запустите:
Примечание. В отличие от модуля pkg, мы устанавливаем пакет не локально, а глобально. Если вы установите его локально, вы столкнетесь с многочисленными ошибками. Примером этой ошибки является Command' nexe' not found . Вы можете увидеть, как решить эту проблему здесь.
После этого запустите следующее, чтобы проверить, установлен ли он:
Скомпилируйте один файл JavaScript в исполняемый файл с помощью nexe
Теперь давайте запустим следующее, чтобы преобразовать точку входа приложения в исполняемый файл:
Это указывает nexe, что он должен только просматривать и компилировать файл index.js в исполняемый файл во время процесса сборки. После этого выполните следующую команду в терминале, чтобы начать процесс сборки:
Мы создадим новый исполняемый файл с тем же именем, что и имя нашего корневого каталога, «исполняемый». По умолчанию в качестве цели для приложения используются операционная система и тип архитектуры системы.
Это сделано для того, чтобы вы могли быстро запустить его в своей системе. В нашем случае будет создан исполняемый файл Windows с именем «executable».
Дважды коснитесь его или щелкните правой кнопкой мыши и выберите команду запуска, чтобы запустить приложение. Он автоматически выходит из системы «Сервер на 5000», что означает, что он работает.
Зайдите в приложение в предпочитаемом браузере по адресу localhost:5000 . Вы можете завершить процесс, нажав кнопку закрытия окна.
Чтобы доказать, что компилируется только точка входа, а не ресурсы, найденные в корневом каталоге. Ресурсы, например, в папке «views», скопируйте и вставьте исполняемый файл в отдельную папку и запустите его. Выдает ошибки, так как приложение не сможет получить доступ к ресурсам.
Запуск на Linux или MacOs
- Если вы работаете в Linux, вы можете запустить сгенерированный исполняемый файл с помощью следующей команды:
Вы можете закрыть его, нажав Ctrl + C .
- В MacOS просто нажмите дважды, чтобы открыть. Затем закройте его с помощью кнопки закрытия.
Скомпилируйте весь проект в исполняемый файл с помощью nexe
Это можно сделать двумя способами.
- Во-первых, мы можем добавить ресурсы в командной строке, используя флаг --resources или -r, как показано ниже:
Мы также можем добавить дополнительные команды, такие как путь к выходному исполняемому файлу, используя --output или -o , цель, используя --target или -t , имя исполняемого файла, используя --name или -n , сборку из исходного кода, используя --build или -b и т. д.
'target' в nexe используется для указания платформы (Windows, Linux или MacOS), архитектуры или типа архитектуры (x86, x64) и версии Node.js (12, 14, 16). . Вы можете увидеть больше здесь.
- Мы можем определить ресурсы в файле package.json. Я рекомендую это, так как он сохраняет ваши конфигурации для последующих повторных запусков. Поскольку мы уже объявили, что нашим приложением «main» является «index.js», мы дополнительно введем скрипт сборки.
Перейдите к файлу package.json и под тегом scripts добавьте скрипт сборки следующим образом:
Это укажет наши ресурсы, которые находятся локально во время сборки.
Теперь запустите приведенную ниже команду, чтобы указать nexe использовать спецификации в теге сборки:
Чтобы начать процесс сборки, используйте следующую команду:
Вы можете запустить созданный файл. Вы также можете скопировать его в другой каталог без каких-либо ресурсов и попробовать запустить его, чтобы убедиться, что ресурсы были скомпилированы в исполняемый файл.
В случае возникновения других ошибок вы можете опубликовать их на вкладке проблем nexe для получения помощи.
Давайте воспользуемся ранее созданным проектом и посмотрим на результат.
Вы можете удалить содержимое ранее созданного корневого каталога (исполняемого файла) или создать новый с другим именем и повторить шаги, которые мы сделали выше, чтобы создать новый проект. Это снижает количество ошибок, связанных с уязвимостями из-за конфликта пакетов друг с другом.
установка пакета
Вы можете начать с установки пакета с помощью приведенной ниже команды для локальной установки:
или для глобальной установки:
Пожалуйста, подождите несколько секунд, чтобы завершить процесс. Затем, по завершении, проверьте и закройте все экземпляры, в которых код выполняется в фоновом режиме.
Скомпилируйте один файл JavaScript в исполняемый файл с помощью pkg
Выполните следующую команду, в которой мы вызовем модуль pkg и точку входа в наше приложение.
В нашем случае это index.js:
Это скомпилирует точку входа нашего приложения в три разных исполняемых файла, поскольку цели не были указаны. Просто подождите некоторое время, пока процесс завершится. Перейдите в основной каталог. Вы найдете три вновь сгенерированных файла.
- для Windows (index-win.exe)
- для Linux (индекс-линукс)
- для Mac (index-macos)
Это потому, что мы не указали операционную систему. Запустите файл, подходящий для вашей операционной системы. Например, в Windows дважды щелкните значок index-win.exe.
Он запустит приложение и отобразит консоль, которая будет действовать как интерактивный интерфейс между вами и приложением. Получите доступ к приложению в предпочитаемом браузере по адресу localhost:5000. Как видно, это работает хорошо.
ПРИМЕЧАНИЕ. Пока работает исполняемый файл, работает и приложение.
Запуск в Linux или MacOS
Если вы используете Ubuntu, запустите ./index-linux на терминале. Затем убедитесь, что он запущен в браузере по адресу localhost:5000 .
Закройте его, нажав Ctrl + C .
Если вы используете MacOS, дважды щелкните значок index-macos и запустите скомпилированное приложение. Затем закройте его с помощью кнопки закрытия.
Подробнее
Теперь давайте углубимся и укажем операционную систему и версию Node.js. Здесь мы используем флаг --targets для установки целевой операционной системы.
Удалите исполняемые файлы, созданные в предыдущем процессе.
Выполните в терминале следующее:
Указывает, что проект должен быть скомпилирован в исполняемый файл, работающий на Node.js версии 12 и ОС Windows с 64-разрядной архитектурой.
Некоторые из поддерживаемых диапазонов, платформ и архитектур Node.js показаны в таблице ниже:
Версии Node.js | Платформы | Arch |
---|---|---|
node8 | alpine | x64 |
node10 | linux | arm64 |
node12 | linuxstatic | (armv6) |
node14< /td> | win | (armv7) |
node16 | macos | |
последняя | (freebsd) |
Скомпилируйте проект в исполняемый файл с помощью pkg
Здесь мы должны указать pkg нашу папку ресурсов. Опять же, мы можем сделать это в файле package.json, используя сценарии и конфигурации ресурсов.
Давайте перейдем к нашему файлу package.json и добавим «pkg», как показано ниже:
Обратите внимание, что мы также добавили «bin». Это сообщает pkg, где находится точка входа приложения. Внутри скрипта «pkg» мы добавили «assets», чтобы показать, какой файл содержит наши ресурсы.
Вы можете добавить больше, просто разделив их запятой. Далее мы указали, где выходные данные будут храниться с помощью «outputPath».
Запустите pkg с помощью приведенной ниже команды, чтобы использовать нашу конфигурацию в package.json:
В случае файлов сборки или конкретных целей вы также можете указать их в pkg, чтобы получить выходные данные в следующем формате:
Ошибка "Файл или каталог не включен"
Если вы столкнулись с ошибкой «не был включен» в pkg, вот как ее обойти. В модуле pkg мы не будем использовать прямую конкатенацию относительных путей, например, res.sendFile(__dirname + '/views/index.html'); .
Это связано не только с плохой практикой программирования, но и с тем, что она возвращает ошибку, как показано ниже:
Это связано с тем, что pkg не распознает шаблон, поэтому он не сможет правильно скомпилировать ресурсы и пути проекта.
Вместо использования __dirname замените его на path.join или getDir(), в котором вы указали путь в начале файла, используя const path = require('path'); . process.cwd() всегда используется для файлов, которые будут недоступны во время сборки, но потребуются для выполнения.
Если у вас возникнут другие проблемы, вы можете прочитать больше здесь. Вы также можете задать здесь новые вопросы.
Дальнейшая практика
- Ознакомьтесь с дополнительными функциями на сайтах nexe/nexe и vercel/pkg и попробуйте их.
- Вы можете попробовать запустить два других файла на соответствующих виртуальных машинах и посмотреть результат.
Просто установите две другие операционные системы и настройте их. Затем запустите файлы и проверьте результат в выбранных веб-браузерах.
Как уже говорилось ранее, вы можете скопировать его на другой компьютер, и другому человеку не нужно будет выполнять какой-либо процесс установки пакета.
Заключение
Поскольку проекты нуждаются в дополнительном тестировании в процессе SDLC, изменения кода — это проблемы, с которыми никто не надеется столкнуться. Кроме того, предпочтение отдается быстрому распространению проекта. Мы можем решить эту проблему, скомпилировав их в исполняемые файлы Node.js с ресурсами или без них по желанию.
Отдельное руководство по компиляции
Все программы, которые мы рассматривали до этого момента, содержались в одном файле. Это скорее исключение, чем правило. По мере того, как программы становятся больше, важно распределять их по файлам разумного размера. В этом уроке мы рассмотрим, почему это важно и как это можно сделать.
До сих пор всякий раз, когда вы хотели скомпилировать программу, вы компилировали файл, отображаемый в буфере Emacs. Скомпилировать этот файл. Опция меню компиляции Emacs (или, что то же самое, M-x compile ) является удобной функцией, когда вся ваша программа содержится в одном файле. Конечно, можно скомпилировать файл полностью независимо от Emacs.
Загрузить hello.c . Это простая программа, которая выводит ``Hello world'', и вы можете скомпилировать и запустить ее, даже не отображая ее в Emacs. Чтобы скомпилировать его, перейдите в окно Unix Shell, подключитесь к каталогу, в который вы загрузили программу, и введите следующую команду:
Эта команда приведет к созданию нового файла. Используйте команду ls, чтобы отобразить ваш каталог. Какого файла не было раньше?
На данный момент у вас еще нет исполняемой программы, которую вы можете запустить. Следующим шагом является связывание объектного файла для создания такого исполняемого файла. Для этого введите в окно UNIX Shell следующее:
Связывание связывает ваш скомпилированный код с некоторым дополнительным кодом, специфичным для C. Еще раз, новый файл был создан в вашем каталоге. Перечислите каталог. Какой новый файл вы нашли?
Теперь, когда у вас есть исполняемый файл, вы можете запустить его обычным способом. Просто введите «hello» в окно UNIX Shell.
<ПР> Скомпилируйте файл ``.c'', содержащий исходный код, с помощью такой команды, как
Если вся ваша программа содержится в одном файле, вы можете выполнить компиляцию и компоновку за один шаг, введя команду
Это именно то, что делает Emacs, когда компилирует для вас программу. До сих пор мы старались выполнять компиляцию в два отдельных этапа, чтобы вы могли работать с программами, состоящими из более чем одного файла. Мы подробнее рассмотрим эту тему в следующем разделе.
Рассмотрите возможность разделения программ на несколько файлов. Под этим мы подразумеваем помещение различных функций, составляющих программу, в более чем один файл.
Попробуйте придумать несколько причин, почему это может быть хорошей идеей.
Теперь давайте посмотрим на программу, разделенную на несколько файлов. Загрузите main.c и help.c и просмотрите их в Emacs. Обратите внимание, что main.c использует две функции, определенные в ``help.c''.
Есть ли способ скомпилировать эту программу из Emacs? Попробуйте скомпилировать ``main.c'' таким образом. Что происходит?
Теперь попробуйте скомпилировать буфер, содержащий ``help.c''. Что происходит?
Основываясь на том, что вы уже знаете, какой, по вашему мнению, будет процедура компиляции, компоновки и запуска программы, которую мы разместили здесь в двух файлах? Подумайте хорошенько, прежде чем смотреть на ответ.
Теперь сделайте это сами. Скомпилируйте, свяжите и запустите программу.
Когда вам это удастся, проведите следующий эксперимент. Слегка измените основную программу, чтобы вызывать две функции в противоположном порядке. Как вы думаете, что будет задействовано в перекомпиляции, компоновке и запуске новой версии программы?
Скомпилируйте, свяжите и запустите измененную программу. (Не забудьте перед этим сохранить ``main.c''!)
Проблема остается. Всякий раз, когда вы компилируете ``main.c'', компилятор жалуется, что ``sum'' и ``product'' являются необъявленными функциями. Даже в этом случае компоновщику удается собрать исполняемый файл. Зачем нам беспокоиться о предупреждении компилятора, если мы все равно можем получить исполняемую программу?
На самом деле решить эту проблему не так уж и сложно. Просто добавьте следующие две строки в ``main.c'' над основной процедурой.
Где вы видели эти строки раньше?
Сохраните ``main.c'' и перестройте исполняемый файл. Если вы все сделали правильно, ошибки должны исчезнуть.
Это неуклюжий способ объявления функций, реализованных в отдельном файле. Можете ли вы придумать какие-нибудь проблемы?
Вот как мы можем решить обе эти проблемы. Создайте новый файл, который не содержит ничего, кроме объявлений функций в ``help.c''. Собственно, такой файл мы уже создали: скачайте help.h и посмотрите на него. Что там помимо деклараций?
Теперь измените ``main.c'', удалив объявления, которые вы добавили, и заменив их строкой
Как вы, вероятно, помните, это указание компилятору вести себя так, как если бы содержимое файла ``help.h'' действительно было введено здесь. Обратите внимание, что мы заключили имя файла в кавычки, а не в угловые скобки, как, например, в случае с stdio.h. Почему?
Сохраните ``main.c'', скомпилируйте, свяжите и запустите его. Как это решает проблему (1), указанную выше?
Однако мы до сих пор не решили проблему (2). Ничто не мешает нам изменить объявления в ``help.h'', сделав его несовместимым с ``help.c''.
К счастью, есть способ решить и эту проблему. Поместите строку
в верхней части ``help.c''. Теперь сохраните ``help.c'' и пересоберите исполняемый файл. Вы не должны столкнуться с ошибками.
Теперь снова отредактируйте ``help.c'', изменив одно из объявлений. Например, измените ``сумму'' так, чтобы она принимала в качестве аргумента число с плавающей запятой, а не целое число. Сохраните и перекомпилируйте ``help.c''. Что происходит?
Подводя итог, вот рекомендуемая процедура работы с многофайловыми программами на C.
<ПР>
в начале всех файлов, использующих функции из ``file.c''. Таким образом, компилятор предупредит вас, если вы неправильно используете функции.
Затем вы можете отдельно скомпилировать файл ``.c'' файлы, а затем скомпоновать их для создания исполняемого файла. В следующем уроке мы рассмотрим файлы Makefile, которые обеспечивают более удобный способ компиляции и компоновки программ с несколькими файлами.
Внимание: в компилируемом скрипте не должно быть синтаксических ошибок, так как в процессе компиляции синтаксис не проверяется.
Aut2Exe можно использовать тремя способами:
Способ 1 – меню "Пуск"
Доступно только при полной установке.
<р>1. Откройте меню "Пуск" и перейдите к группе AutoIt v3. <р>2. Нажмите Скомпилировать скрипт в .exe. <р>3. Должен появиться основной интерфейс Aut2Exe.<р>4. Используйте кнопки Обзор, чтобы выбрать входной (.au3) и выходной (.exe) файлы.
<р>5. При желании вы можете изменить значок получившегося .exe — просто перейдите к нужному значку (некоторые примеры значков находятся в Program Files\AutoIt3\Aut2Exe\Icons). <р>6. Единственный другой параметр, который вы, возможно, захотите изменить, — это уровень сжатия (особенно при использовании FileInstall для добавления дополнительных файлов). Используйте меню Сжатие, чтобы настроить это. Как и во всех процедурах сжатия, чем лучше выбранное вами сжатие, тем медленнее оно будет. Однако независимо от того, какой уровень сжатия вы выберете, скорость распаковки (при запуске .exe) будет одинаковой. <р>7. Нажмите Конвертировать, чтобы скомпилировать скрипт.Способ 2 – щелчок правой кнопкой мыши
Доступно только при полной установке.
<р>1. В Проводнике перейдите к файлу .au3, который вы хотите скомпилировать. <р>2. Щелкните файл правой кнопкой мыши, чтобы открыть всплывающее меню.<р>3. Файл будет автоматически скомпилирован с тем же именем, но с расширением .exe.
При такой компиляции Aut2Exe использует текущие настройки значка/сжатия (с момента последнего запуска Aut2Exe вручную, как в методе 1).
Способ 3 — Командная строка
Программу Aut2Exe.exe можно запустить из командной строки следующим образом:
@@SyntaxHighlighting@@ Aut2exe.exe / In [/out ][/icon ][/comp 0–4][/nopack][/x64][/bin ] @@End@@
Переключатель | Использование | Значение по умолчанию |
---|---|---|
/in< /td> | Указывает путь и имя файла bin, который будет использоваться для компиляции файла. | Нет. Файл должен быть указан |
/out | Указывает путь и имя скомпилированного файла. Указывает путь и имя файла при создании файла *.a3x. | Имя входного файла с расширением .exe |
/icon< /td> | Указывает путь и имя файла значка, используемого для скомпилированного файла. | Значок по умолчанию |
/comp | Указывает уровень сжатия, который будет использоваться при кодировании скрипта (это НЕ относится к UPX). Это должно быть число от 0 (нет) до 4 (максимум). | 2 |
/nopack | Указывает, что файл не должен быть сжат с помощью UPX после компиляции. | pack |
/pack | Указывает, что файл должен быть сжатым с помощью UPX после компиляции. | pack |
/x64 | Указывает, что скрипт должен быть скомпилирован для использования в системах с x64 (64-разрядная) архитектура. | см. примечания |
/x86 | Указывает, что сценарий должен быть скомпилирован для использования на системы с архитектурой x86 (32-разрядная). | см. примечания |
/console | Указывает, что скрипт должен быть скомпилирован как консольное приложение. | Приложение Windows (/gui) |
/gui | Указывает, что сценарий должен быть скомпилирован как приложение Windows application. | Приложение Windows (/gui) |
Примеры командной строки
/in c:\myscript.au3 /out c:\myapp.exe /icon c:\myicon.ico /x64
Приведет к созданию файла c:\myapp.exe с обычным сжатием, который будет использовать указанный значок и будет скомпилирован для использования в системной архитектуре x64.
приведет к созданию unicode c:\myscript.exe с обычным сжатием, который будет использовать значок AutoIt по умолчанию для использования в системах win_32.
Примечания к командной строке
Длинные имена файлов следует заключать в двойные кавычки, например "C:\Program Files\Test\test.au3".
За исключением /in, все переключатели являются необязательными.
По умолчанию 32-разрядный компилятор создает 32-разрядный двоичный файл, а 64-разрядный компилятор создает 64-разрядный двоичный файл. Используйте параметры /x86 и /x64, чтобы явно указать выходные данные.
Переключатели /pass и /nodecompile являются избыточными, начиная с версии 3.2.8.1. Они будут проигнорированы, если они использовались и были удалены из этого списка.
Переключатели /ansi и /unicode являются избыточными, начиная с версии 3.3.0.0.
Переключатель /bin является избыточным в версии 3.3.10.0 и был удален из этого списка..
Технические детали
Скомпилированный скрипт и дополнительные файлы, добавленные с помощью FileInstall, сжаты по моей собственной (Джона) схеме сжатия.
Читайте также: