lab01: настройка статической сборки
Этот коммит содержится в:
@@ -332,7 +332,7 @@ for (double x : numbers) {
|
||||
в CodeBlocks это может быть `bin\Debug`. При затруднениях в работе с консолью
|
||||
можно воспользоваться [руководством][cmd].
|
||||
|
||||
##### Командная строка Windows
|
||||
#### Командная строка Windows
|
||||
|
||||
Командная строка (терминал) запускается через *Win+R*, `cmd` или путем ввода
|
||||
`cmd` в строку адреса в «Проводнике» и нажатия *Enter.* Текст `C:\>` слева
|
||||
@@ -344,6 +344,39 @@ for (double x : numbers) {
|
||||
символов имени каталога, и Windows дополнит путь. Если нужно повторить
|
||||
одну из предыдущих команд, стрелки вверх и вниз проматывают историю.
|
||||
|
||||
#### Запуск программ без CodeBlocks
|
||||
|
||||
Находясь в каталоге с `*.exe`, можно попробовать запустить его:
|
||||
|
||||
```cmd
|
||||
C:\lab01\bin\Debug> lab01
|
||||
```
|
||||
|
||||
Однако это может привести к сообщению об ошибке
|
||||
(имя библиотеки может быть иным):
|
||||
|
||||
```
|
||||
Программа не может быть выполнена, потому что библиотека libstd++.dll не найдена.
|
||||
```
|
||||
|
||||
Подробнее тема библиотек будет рассмотрена позже в курсе лекций и ЛР.
|
||||
Чтобы сделать файл `lab01.exe` независимым от внешних библиотек,
|
||||
нужно в CodeBlocks:
|
||||
|
||||
* Открыть диалог *Settings → Compiler → Compiler settings*
|
||||
и поставить галочки *Static libstdc++ [-static-libstdc++]*
|
||||
и *Static linking [-static]*.
|
||||
|
||||
* Пересобрать проект *Ctrl+F11* или *Build → Rebuild*
|
||||
или нажать на иконку с голубыми стрелочками.
|
||||
|
||||
При использовании CMake, например, в CLion,
|
||||
нужно в `CMakeLists.txt` после `executable(xxx ...)` добавить такую строку:
|
||||
|
||||
```CMakeLists.txt
|
||||
target_link_options(xxx PRIVATE -static -static-libstdc++)
|
||||
```
|
||||
|
||||
#### Стандартные потоки и их перенаправление
|
||||
|
||||
Обычно для простоты говорят, что ввод происходит с клавиатуры, а вывод — на
|
||||
|
||||
Ссылка в новой задаче
Block a user