При компиляции с MinGW мне нужно скопировать определенные файлы DLL из каталога bin MinGW до запуска exe (даже при использовании "-статического" и/или "-статического-libstdС++".) Как мне это изменить? Есть ли специальная сборка MinGW, которую я должен использовать? В конечном счете, я хочу, чтобы у меня была возможность запускать программу только с помощью exe в каталоге (и не заданы переменные среды Windows). Эти файлы:
- libstdС++ - 6.dll
- libgcc_s_seh-1.dll
- libwinpthread-1.dll
И вот полный список шагов, которые я подхожу:
- Открыть код:: Блокировки
- Выберите "Файл- > Создать- > Проект- > Консоль"
- Заполните настройки проекта для проекта "Hello World"
- Щелкните правой кнопкой мыши Project- > Параметры сборки...- > Hello World (Корневая цель) → Другие параметры
- Введите "-статический" (или "-static-libstdС++" ) в соответствии с уже установленными "-fexceptions"
- CTRL-F9: проект сборки (без выполнения)
- Перейдите в Windows Explorer и запустите встроенный файл Hello World.exe.
- Нажмите "ОК", когда появится сообщение "Ошибка: libstdС++ - 6.dll отсутствует на вашем компьютере".
- Скопируйте "libstdС++ - 6.dll" из каталога/MinGW/bin/в каталог "Hello World.exe" .
- Запустите "Hello World.exe"
- Нажмите "ОК" для сообщения "Ошибка: libgcc_s_seh-1.dll отсутствует на вашем компьютере".
- Скопируйте файл libgcc_s_seh-1.dll в каталог "Hello World.exe" .
- Повторите и завершите копирование файла libwinpthread-1.dll.
-
Просмотр сообщения
Hello World!
Edit: Моя командная строка:
g++.exe -Wall -fexceptions -static -static-libgcc -static-libstdc++ -g -static-libgcc -static-libstdc++ -L. -c "C:\Users\______\Desktop\Hello World\main.cpp" -o obj\Debug\main.o
g++.exe -o "bin\Debug\Hello World.exe" obj\Debug\main.o
При наличии всех файлов dll, указанных выше. И, чтобы быть в безопасности, код:
// main.cpp
#include <iostream>
using namespace std;
int main()
{
cout << "Hello world!" << endl;
return 0;
}