Форум программистов, компьютерный форум, киберфорум
SFML
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 5.00/1: Рейтинг темы: голосов - 1, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 26.07.2022
Сообщений: 6

Как подключить к mingw?

20.08.2022, 21:37. Показов 7364. Ответов 44
Метки c++ (Все метки)

Студворк — интернет-сервис помощи студентам
Всем добрый день, уже несколько дней пытаюсь подключить библиотеку sfml к компилятору g++,подскажите кто знает что я делаю не так, фото во вложениях, версии компилятора и библиотеки совпадают
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.08.2022, 21:37
Ответы с готовыми решениями:

Как подключить к VS библиотеки, которые есть в MinGW?
Доброго дня! подскажите пожалуйста как нужно подключить к VS библиотеки, которые есть в MinGW? на данный момент мне нужно иметь дело с...

Подключить *.lib к проекту MinGW C++ на eclipse
Создал проект С/С++. Консольное приложение для windows *.exe. Компилирую MinGW. В роли билдера "CDT Internal Builder". В...

Не могу подключить MinGW в CLion, выдаёт ошибку
Есть предположение что это от русских букв в пути, но я не могу никак поменять это. Пробовал я ставить разные версии MinGW, и это не...

44
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
28.08.2022, 21:56
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от 8Observer8 Посмотреть сообщение
Мне больше нравится SDL2
Это кросспатформенное ядро для работы с графикой.
Вполне годдное для простых задач, для более сложных не изцчал, пока у меня акцент на алгоритмы, базовые, и чуток повыше, по ходу изучения. Средства это дело 100500е.

Цитата Сообщение от 8Observer8 Посмотреть сообщение
В Notepad++, вроде, нет IntelliSense.
судя по всеу у выше пречисленных мною ИДЕ они тоже хромают на все свои чтеыре ноги.
На данный момент для обучения использую Eclipse и MS studio
Еclipse выграет в своего старшего брата

Цитата Сообщение от 8Observer8 Посмотреть сообщение
Вы привели отличный рабочий пример, это вполне решение темы, прям в точку.
Когда то я с ним знакомился, именно под MinGw. Но опять же пришлось немного поковырятся.
В шапке автора был пример неправильно раздельного компилированния.

Добавлено через 1 минуту
Цитата Сообщение от SmallEvil Посмотреть сообщение
В шапке автора был пример неправильно раздельного компилированния.
если честно я пока не копаюсь в этом, есть для этого вполне годные автоматические системы.

Добавлено через 2 минуты
8Observer8, специально для вас и ТС
Цитата Сообщение от 8Observer8 Посмотреть сообщение
Чтобы работало на компьютерах пользователей, наверное, достаточно, чтобы эти три DLL лежали рядом с EXE:
Windows Batch file
1
-static-libgcc  -static-libstdc++
Добавлено через 2 минуты
8Observer8, кстати, эти две опции для компилятора gcc/g++ вполне годны и для статик билда КюТе проектов с помоощью mingw в статик релизе

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

Не по теме:

qtcreator = 3% голосов - ну такое, бывает, не заморочились )

1
9991 / 2963 / 497
Регистрация: 05.10.2013
Сообщений: 8,144
Записей в блоге: 243
28.08.2022, 22:12
Windows Batch file
1
-static-libgcc  -static-libstdc++
Без этих ключей EXE с SFML и Box2D весит 1,034 KB:

Название: 187090516-9346a79d-b646-46a2-be5a-4812dd0597cb.png
Просмотров: 134

Размер: 4.6 Кб

После добавления этих ключей EXE всё равно весит 1,034 KB:

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
CC = g++
INC = -I"E:\Libs\SFML-2.5.1-windows-gcc-7.3.0-mingw-64-bit\include" \
      -I"E:\Libs\box2d-2.4.1-mingw-64-bit\include"
LIB = -L"E:\Libs\SFML-2.5.1-windows-gcc-7.3.0-mingw-64-bit\lib" \
      -L"E:\Libs\box2d-2.4.1-mingw-64-bit\lib"
FLAGS = -c -DSFML_STATIC -static-libgcc -static-libstdc++
 
all: main.o
    $(CC) main.o $(LIB) -lsfml-graphics-s -lsfml-window-s -lsfml-system-s -lfreetype \
    -lopengl32  -lwinmm  -lgdi32 -lbox2d -o app
 
main.o: main.cpp
    $(CC) $(FLAGS) $(INC) main.cpp
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
28.08.2022, 22:25
ничего не мудрил просто боавил эт две опции и :
до 693 630 байт
после 3 229 635 байт
сответственоо в зависимостях остался только winpthread

Добавлено через 2 минуты
Цитата Сообщение от SmallEvil Посмотреть сообщение
ничего не мудрил просто боавил
у своему батнику конешно, так для всякого
из отмеченного поста

Добавлено через 1 минуту
Цитата Сообщение от 8Observer8 Посмотреть сообщение
После добавления этих ключей EXE всё равно весит 1,034 KB:
разве не очевидно что компилятор/компоновщик проигнорировал опции ?
1
9991 / 2963 / 497
Регистрация: 05.10.2013
Сообщений: 8,144
Записей в блоге: 243
28.08.2022, 22:28
Я не туда поставил ключи:

Название: 187091164-b150f4e1-3f8e-4cb7-9d19-2ec68a0f6518.png
Просмотров: 125

Размер: 4.8 Кб

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
CC = g++
INC = -I"E:\Libs\SFML-2.5.1-windows-gcc-7.3.0-mingw-64-bit\include" \
      -I"E:\Libs\box2d-2.4.1-mingw-64-bit\include"
LIB = -L"E:\Libs\SFML-2.5.1-windows-gcc-7.3.0-mingw-64-bit\lib" \
      -L"E:\Libs\box2d-2.4.1-mingw-64-bit\lib"
FLAGS = -c -DSFML_STATIC
 
all: main.o
    $(CC) -static-libgcc -static-libstdc++ main.o $(LIB) -lsfml-graphics-s -lsfml-window-s
    -lsfml-system-s -lfreetype -lopengl32  -lwinmm  -lgdi32 -lbox2d -o app
 
main.o: main.cpp
    $(CC) $(FLAGS) $(INC) main.cpp
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
28.08.2022, 23:03
8Observer8, посмотрю делал QT проект в статик, как там потоки подключил ...
хм, не добил тогда
чтобы сткатически добавить libwinptread
Windows Batch file
1
-Wl,-Bstatic,--whole-archive -lwinpthread -Wl,--no-whole-archive
нагуглил с эмпирическим методом тыка.

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

Не по теме:

8Observer8, SmallEvil Нарушения: 0/2 (15)
Это я сегодня Сириусянинам и прочи мученикам науки хтел глаза открыть ...



Добавлено через 1 минуту
Цитата Сообщение от SmallEvil Посмотреть сообщение
-lwinpthread
полный батник :
Windows Batch file
1
2
path =d:\LabProgramms\winlibs-x86_64-posix-seh-gcc-11.1.0-mingw-w64-9.0.0-r3\mingw64\bin\;%PATH%
g++ -mwindows sfmltest.cpp -o sfmltest.exe -DSFML_STATIC -Id:\LabProgramms\tmp\SFML-2.5.1\include\ -Ld:\LabProgramms\tmp\SFML-2.5.1\lib\  -lsfml-graphics-s -lsfml-window-s -lsfml-system-s -lfreetype -lopengl32  -lwinmm  -lgdi32  -static-libgcc  -static-libstdc++ -Wl,-Bstatic,--whole-archive -lwinpthread -Wl,--no-whole-archive
Добавлено через 1 минуту
Windows Batch file
1
-lfreetype -lopengl32  -lwinmm  -lgdi32
вот ети либы просто скопировал из ликбеза по билду sfml, хз нужны ли они, проверять не буду точно )
1
9991 / 2963 / 497
Регистрация: 05.10.2013
Сообщений: 8,144
Записей в блоге: 243
29.08.2022, 00:01
Я думал, что раз от libwinpthread косвенная зависимость, значит она должна подцепиться автоматически, то есть добавиться в статику, а на самом деле, теперь зависимость стала прямой:

Название: 187094210-770bfc1b-43c4-411a-8052-bd35d43b157b.png
Просмотров: 126

Размер: 5.7 Кб
0
9991 / 2963 / 497
Регистрация: 05.10.2013
Сообщений: 8,144
Записей в блоге: 243
29.08.2022, 00:09
Windows Batch file
1
-Wl,-Bstatic,--whole-archive -lwinpthread
Да, это работает. Я ещё добавил библиотеку -lstdc++

Windows Batch file
1
-Wl,-Bstatic -lstdc++ -lwinpthread
, потому что без неё не срабатывает. Взял информацию об -lstdc++ из второго ответа темы: how to do static linking of libwinpthread-1.dll in mingw?

EXE увеличился всего на несколько десятков КБайт:

Название: 187094556-ebc9beec-871a-441b-9f4d-65204278669f.png
Просмотров: 121

Размер: 4.8 Кб

Зависимость от winpthread пропала:

Название: 187094520-e40efbad-7793-4b7a-865a-b308d002787c.png
Просмотров: 121

Размер: 4.3 Кб

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
CC = g++
INC = -I"E:\Libs\SFML-2.5.1-windows-gcc-7.3.0-mingw-64-bit\include" \
      -I"E:\Libs\box2d-2.4.1-mingw-64-bit\include"
LIB = -L"E:\Libs\SFML-2.5.1-windows-gcc-7.3.0-mingw-64-bit\lib" \
      -L"E:\Libs\box2d-2.4.1-mingw-64-bit\lib"
FLAGS = -c -DSFML_STATIC
 
all: main.o
    $(CC) main.o $(LIB) -lsfml-graphics-s -lsfml-window-s -lsfml-system-s -lfreetype \
    -lopengl32  -lwinmm  -lgdi32 -lbox2d -static-libgcc -static-libstdc++ -Wl,-Bstatic \
    -lstdc++ -lwinpthread -o app
 
main.o: main.cpp
    $(CC) $(FLAGS) $(INC) main.cpp
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
29.08.2022, 00:40
Цитата Сообщение от 8Observer8 Посмотреть сообщение
Я думал, что раз от libwinpthread косвенная зависимость, значит она должна подцепиться автоматически
там видно правовая фишка есть ... для ОС wundows
или еще что, может позже поинтерисуюсь
0
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
29.08.2022, 10:41
Цитата Сообщение от 8Observer8 Посмотреть сообщение
Я думал, что раз от libwinpthread косвенная зависимость, значит она должна подцепиться автоматически, то есть добавиться в статику, а на самом деле, теперь зависимость стала прямой:
Это невозможно по определению того, что есть по своей сути статическая библиотека: архив объектников. Никакой информации о зависимостях такой архив не несет, это просто код для линковки.

Добавлено через 1 минуту
Если у вас есть это:
Цитата Сообщение от 8Observer8 Посмотреть сообщение
-static-libstdc++
то вот это (в своей статической интерпретации)
Цитата Сообщение от 8Observer8 Посмотреть сообщение
-lstdc++
не нужно.
0
9991 / 2963 / 497
Регистрация: 05.10.2013
Сообщений: 8,144
Записей в блоге: 243
29.08.2022, 11:44
Цитата Сообщение от DrOffset Посмотреть сообщение
не нужно.
У меня есть "-static-libstdc++", но если я удаляю "-lstdc++", то сразу выскакивает зависимость от "libwinpthread-1.dll".

Прямо сейчас проверяю и пишу. Оставляю "-static-libstdc++" и убираю "-lstdc++":

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
CC = g++
INC = -I"E:\Libs\SFML-2.5.1-windows-gcc-7.3.0-mingw-64-bit\include" \
      -I"E:\Libs\box2d-2.4.1-mingw-64-bit\include"
LIB = -L"E:\Libs\SFML-2.5.1-windows-gcc-7.3.0-mingw-64-bit\lib" \
      -L"E:\Libs\box2d-2.4.1-mingw-64-bit\lib"
FLAGS = -c -DSFML_STATIC
 
all: main.o
    $(CC) main.o $(LIB) -lsfml-graphics-s -lsfml-window-s -lsfml-system-s -lfreetype \
    -lopengl32  -lwinmm  -lgdi32 -lbox2d -static-libgcc -static-libstdc++ -Wl,-Bstatic \
    -lwinpthread -o app
 
main.o: main.cpp
    $(CC) $(FLAGS) $(INC) main.cpp
Появляется зависимость от "libwinpthread-1.dll":



Добавляю "-lstdc++"

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
CC = g++
INC = -I"E:\Libs\SFML-2.5.1-windows-gcc-7.3.0-mingw-64-bit\include" \
      -I"E:\Libs\box2d-2.4.1-mingw-64-bit\include"
LIB = -L"E:\Libs\SFML-2.5.1-windows-gcc-7.3.0-mingw-64-bit\lib" \
      -L"E:\Libs\box2d-2.4.1-mingw-64-bit\lib"
FLAGS = -c -DSFML_STATIC
 
all: main.o
    $(CC) main.o $(LIB) -lsfml-graphics-s -lsfml-window-s -lsfml-system-s -lfreetype \
    -lopengl32  -lwinmm  -lgdi32 -lbox2d -static-libgcc -static-libstdc++ -Wl,-Bstatic \
    -lstdc++ -lwinpthread -o app
 
main.o: main.cpp
    $(CC) $(FLAGS) $(INC) main.cpp
Зависимость от "libwinpthread-1.dll" пропадает:

0
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
29.08.2022, 12:53
8Observer8, при линковке добавьте ключ -v и покажите вывод.
0
9991 / 2963 / 497
Регистрация: 05.10.2013
Сообщений: 8,144
Записей в блоге: 243
29.08.2022, 13:20
Цитата Сообщение от DrOffset Посмотреть сообщение
при линковке добавьте ключ -v и покажите вывод.
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
CC = g++
INC = -I"E:\Libs\SFML-2.5.1-windows-gcc-7.3.0-mingw-64-bit\include" \
      -I"E:\Libs\box2d-2.4.1-mingw-64-bit\include"
LIB = -L"E:\Libs\SFML-2.5.1-windows-gcc-7.3.0-mingw-64-bit\lib" \
      -L"E:\Libs\box2d-2.4.1-mingw-64-bit\lib"
FLAGS = -c -DSFML_STATIC
 
all: main.o
    $(CC) main.o $(LIB) -v -lsfml-graphics-s -lsfml-window-s -lsfml-system-s -lfreetype \
    -lopengl32  -lwinmm  -lgdi32 -lbox2d -static-libgcc -static-libstdc++ -Wl,-Bstatic \
    -lstdc++ -lwinpthread -o app
 
main.o: main.cpp
    $(CC) $(FLAGS) $(INC) main.cpp
> mingw32-make
g++ main.o -L"E:\Libs\SFML-2.5.1-windows-gcc-7.3.0-mingw-64-bit\lib" -L"E:\Libs\box2d-2.4.1-mingw-64-bit\lib" -v -lsfml-graphics-s -lsfml-window-s -lsfml-system-s -lfreetype \
-lopengl32 -lwinmm -lgdi32 -lbox2d -static-libgcc -static-libstdc++ -Wl,-Bstatic \
-lstdc++ -lwinpthread -o app
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=C:/Qt6/Tools/mingw810_64/bin/../libexec/gcc/x86_64-w64-mingw32/8.1.0/lto-wrapper.exe
Target: x86_64-w64-mingw32
Configured with: ../../../src/gcc-8.1.0/configure --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 --prefix=/mingw64 --with-sysroot=/c/mingw810/x86_64-810-posix-seh-rt_v6-rev0/mingw64 --enable-shared --enable-static --disable-multilib --enable-languages=c,c++,fortran,lto --enable-libstdcxx-time=yes --enable-threads=posix --enable-libgomp --enable-libatomic --enable-lto --enable-graphite --enable-checking=release --enable-fully-dynamic-string --enable-version-specific-runtime-libs --disable-libstdcxx-pch --disable-libstdcxx-debug --enable-bootstrap --disable-rpath --disable-win32-registry --disable-nls --disable-werror --disable-symvers --with-gnu-as --with-gnu-ld --with-arch=nocona --with-tune=core2 --with-libiconv --with-system-zlib --with-gmp=/c/mingw810/prerequisites/x86_64-w64-mingw32-static --with-mpfr=/c/mingw810/prerequisites/x86_64-w64-mingw32-static --with-mpc=/c/mingw810/prerequisites/x86_64-w64-mingw32-static --with-isl=/c/mingw810/prerequisites/x86_64-w64-mingw32-static --with-pkgversion='x86_64-posix-seh-rev0, Built by MinGW-W64 project' --with-bugurl=https://sourceforge.net/projects/mingw-w64 CFLAGS='-O2 -pipe -fno-ident -I/c/mingw810/x86_64-810-posix-seh-rt_v6-rev0/mingw64/opt/include -I/c/mingw810/prerequisites/x86_64-zlib-static/include -I/c/mingw810/prerequisites/x86_64-w64-mingw32-static/include' CXXFLAGS='-O2 -pipe -fno-ident -I/c/mingw810/x86_64-810-posix-seh-rt_v6-rev0/mingw64/opt/include -I/c/mingw810/prerequisites/x86_64-zlib-static/include -I/c/mingw810/prerequisites/x86_64-w64-mingw32-static/include' CPPFLAGS=' -I/c/mingw810/x86_64-810-posix-seh-rt_v6-rev0/mingw64/opt/include -I/c/mingw810/prerequisites/x86_64-zlib-static/include -I/c/mingw810/prerequisites/x86_64-w64-mingw32-static/include' LDFLAGS='-pipe -fno-ident -L/c/mingw810/x86_64-810-posix-seh-rt_v6-rev0/mingw64/opt/lib -L/c/mingw810/prerequisites/x86_64-zlib-static/lib -L/c/mingw810/prerequisites/x86_64-w64-mingw32-static/lib '
Thread model: posix
gcc version 8.1.0 (x86_64-posix-seh-rev0, Built by MinGW-W64 project)
COMPILER_PATH=C:/Qt6/Tools/mingw810_64/libexec/gcc/x86_64-w64-mingw32/8.1.0/;C:/Qt6/Tools/mingw810_64/libexec/gcc/;C:/Qt6/Tools/mingw810_64/x86_64-w64-mingw32/bin/
LIBRARY_PATH=C:/Qt6/Tools/mingw810_64/lib/gcc/x86_64-w64-mingw32/8.1.0/;C:/Qt6/Tools/mingw810_64/lib/gcc/;C:/Qt6/Tools/mingw810_64/x86_64-w64-mingw32/lib/;C:/Qt6/Tools/mingw810_64/lib/;C:/Qt6/Tools/mingw810_64/x86_64-w64-mingw32/lib/;C:/Qt6/Tools/mingw810_64/lib/
COLLECT_GCC_OPTIONS='-LE:\Libs\SFML-2.5.1-windows-gcc-7.3.0-mingw-64-bit\lib' '-LE:\Libs\box2d-2.4.1-mingw-64-bit\lib' '-v' '-static-libgcc' '-o' 'app.exe' '-mtune=core2' '-march=nocona'
C:/Qt6/Tools/mingw810_64/libexec/gcc/x86_64-w64-mingw32/8.1.0/collect2.exe -plugin C:/Qt6/Tools/mingw810_64/libexec/gcc/x86_64-w64-mingw32/8.1.0/liblto_plugin-0.dll -plugin-opt=C:/Qt6/Tools/mingw810_64/libexec/gcc/x86_64-w64-mingw32/8.1.0/lto-wrapper.exe -plugin-opt=-fresolution=C:\Users\8OBSER~1\AppData\Lo cal\Temp\cck9z0lk.res -plugin-opt=-pass-through=-lmingw32 -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_eh -plugin-opt=-pass-through=-lmoldname -plugin-opt=-pass-through=-lmingwex -plugin-opt=-pass-through=-lmsvcrt -plugin-opt=-pass-through=-lpthread -plugin-opt=-pass-through=-ladvapi32 -plugin-opt=-pass-through=-lshell32 -plugin-opt=-pass-through=-luser32 -plugin-opt=-pass-through=-lkernel32 -plugin-opt=-pass-through=-liconv -plugin-opt=-pass-through=-lmingw32 -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_eh -plugin-opt=-pass-through=-lmoldname -plugin-opt=-pass-through=-lmingwex -plugin-opt=-pass-through=-lmsvcrt --sysroot=C:/mingw810/x86_64-810-posix-seh-rt_v6-rev0/mingw64 -m i386pep -Bdynamic -o app.exe C:/Qt6/Tools/mingw810_64/x86_64-w64-mingw32/lib/crt2.o C:/Qt6/Tools/mingw810_64/lib/gcc/x86_64-w64-mingw32/8.1.0/crtbegin.o -LE:\Libs\SFML-2.5.1-windows-gcc-7.3.0-mingw-64-bit\lib -LE:\Libs\box2d-2.4.1-mingw-64-bit\lib -LC:/Qt6/Tools/mingw810_64/lib/gcc/x86_64-w64-mingw32/8.1.0 -LC:/Qt6/Tools/mingw810_64/lib/gcc -LC:/Qt6/Tools/mingw810_64/x86_64-w64-mingw32/lib -LC:/Qt6/Tools/mingw810_64/lib -LC:/Qt6/Tools/mingw810_64/x86_64-w64-mingw32/lib -LC:/Qt6/Tools/mingw810_64/lib/gcc/.. main.o -lsfml-graphics-s -lsfml-window-s -lsfml-system-s -lfreetype -lopengl32 -lwinmm -lgdi32 -lbox2d -Bstatic -lstdc++ -lwinpthread -Bstatic -lstdc++ -Bdynamic -lmingw32 -lgcc -lgcc_eh -lmoldname -lmingwex -lmsvcrt -lpthread -ladvapi32 -lshell32 -luser32 -lkernel32 -liconv -lmingw32 -lgcc -lgcc_eh -lmoldname -lmingwex -lmsvcrt C:/Qt6/Tools/mingw810_64/lib/gcc/x86_64-w64-mingw32/8.1.0/crtend.o
COLLECT_GCC_OPTIONS='-LE:\Libs\SFML-2.5.1-windows-gcc-7.3.0-mingw-64-bit\lib' '-LE:\Libs\box2d-2.4.1-mingw-64-bit\lib' '-v' '-static-libgcc' '-o' 'app.exe' '-mtune=core2' '-march=nocona'
0
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
29.08.2022, 13:41
8Observer8, теперь тоже самое, но без явного указания -lstdc++.

Эффект от ключа -static-libstdc++ вот
Цитата Сообщение от 8Observer8 Посмотреть сообщение
-Bstatic -lstdc++ -Bdynamic
Возможно здесь играет роль порядок линковки. Т.е.
-Bstatic -lstdc++ -lwinpthread - можно, а -Bstatic -lwinpthread -lstdc++, который получается при использовании ключа -static-libstdc++, нельзя. В таком случае не нужен уже ключ -static-libstdc++, т.е. его можно не писать, если вы явно указываете линковать статически stdc++.
1
9991 / 2963 / 497
Регистрация: 05.10.2013
Сообщений: 8,144
Записей в блоге: 243
29.08.2022, 14:26
Цитата Сообщение от DrOffset Посмотреть сообщение
теперь тоже самое, но без явного указания -lstdc++.
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
CC = g++
INC = -I"E:\Libs\SFML-2.5.1-windows-gcc-7.3.0-mingw-64-bit\include" \
      -I"E:\Libs\box2d-2.4.1-mingw-64-bit\include"
LIB = -L"E:\Libs\SFML-2.5.1-windows-gcc-7.3.0-mingw-64-bit\lib" \
      -L"E:\Libs\box2d-2.4.1-mingw-64-bit\lib"
FLAGS = -c -DSFML_STATIC
 
all: main.o
    $(CC) main.o $(LIB) -v -lsfml-graphics-s -lsfml-window-s -lsfml-system-s -lfreetype \
    -lopengl32  -lwinmm  -lgdi32 -lbox2d -static-libgcc -static-libstdc++ -Wl,-Bstatic \
    -lwinpthread -o app
 
main.o: main.cpp
    $(CC) $(FLAGS) $(INC) main.cpp
>mingw32-make
g++ main.o -L"E:\Libs\SFML-2.5.1-windows-gcc-7.3.0-mingw-64-bit\lib" -L"E:\Libs\box2d-2.4.1-mingw-64-bit\lib" -v -lsfml-graphics-s -lsfml-window-s -lsfml-system-s -lfreetype \
-lopengl32 -lwinmm -lgdi32 -lbox2d -static-libgcc -static-libstdc++ -Wl,-Bstatic \
-lwinpthread -o app
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=C:/Qt6/Tools/mingw810_64/bin/../libexec/gcc/x86_64-w64-mingw32/8.1.0/lto-wrapper.exe
Target: x86_64-w64-mingw32
Configured with: ../../../src/gcc-8.1.0/configure --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 --prefix=/mingw64 --with-sysroot=/c/mingw810/x86_64-810-posix-seh-rt_v6-rev0/mingw64 --enable-shared --enable-static --disable-multilib --enable-languages=c,c++,fortran,lto --enable-libstdcxx-time=yes --enable-threads=posix --enable-libgomp --enable-libatomic --enable-lto --enable-graphite --enable-checking=release --enable-fully-dynamic-string --enable-version-specific-runtime-libs --disable-libstdcxx-pch --disable-libstdcxx-debug --enable-bootstrap --disable-rpath --disable-win32-registry --disable-nls --disable-werror --disable-symvers --with-gnu-as --with-gnu-ld --with-arch=nocona --with-tune=core2 --with-libiconv --with-system-zlib --with-gmp=/c/mingw810/prerequisites/x86_64-w64-mingw32-static --with-mpfr=/c/mingw810/prerequisites/x86_64-w64-mingw32-static --with-mpc=/c/mingw810/prerequisites/x86_64-w64-mingw32-static --with-isl=/c/mingw810/prerequisites/x86_64-w64-mingw32-static --with-pkgversion='x86_64-posix-seh-rev0, Built by MinGW-W64 project' --with-bugurl=https://sourceforge.net/projects/mingw-w64 CFLAGS='-O2 -pipe -fno-ident -I/c/mingw810/x86_64-810-posix-seh-rt_v6-rev0/mingw64/opt/include -I/c/mingw810/prerequisites/x86_64-zlib-static/include -I/c/mingw810/prerequisites/x86_64-w64-mingw32-static/include' CXXFLAGS='-O2 -pipe -fno-ident -I/c/mingw810/x86_64-810-posix-seh-rt_v6-rev0/mingw64/opt/include -I/c/mingw810/prerequisites/x86_64-zlib-static/include -I/c/mingw810/prerequisites/x86_64-w64-mingw32-static/include' CPPFLAGS=' -I/c/mingw810/x86_64-810-posix-seh-rt_v6-rev0/mingw64/opt/include -I/c/mingw810/prerequisites/x86_64-zlib-static/include -I/c/mingw810/prerequisites/x86_64-w64-mingw32-static/include' LDFLAGS='-pipe -fno-ident -L/c/mingw810/x86_64-810-posix-seh-rt_v6-rev0/mingw64/opt/lib -L/c/mingw810/prerequisites/x86_64-zlib-static/lib -L/c/mingw810/prerequisites/x86_64-w64-mingw32-static/lib '
Thread model: posix
gcc version 8.1.0 (x86_64-posix-seh-rev0, Built by MinGW-W64 project)
COMPILER_PATH=C:/Qt6/Tools/mingw810_64/libexec/gcc/x86_64-w64-mingw32/8.1.0/;C:/Qt6/Tools/mingw810_64/libexec/gcc/;C:/Qt6/Tools/mingw810_64/x86_64-w64-mingw32/bin/
LIBRARY_PATH=C:/Qt6/Tools/mingw810_64/lib/gcc/x86_64-w64-mingw32/8.1.0/;C:/Qt6/Tools/mingw810_64/lib/gcc/;C:/Qt6/Tools/mingw810_64/x86_64-w64-mingw32/lib/;C:/Qt6/Tools/mingw810_64/lib/;C:/Qt6/Tools/mingw810_64/x86_64-w64-mingw32/lib/;C:/Qt6/Tools/mingw810_64/lib/
COLLECT_GCC_OPTIONS='-LE:\Libs\SFML-2.5.1-windows-gcc-7.3.0-mingw-64-bit\lib' '-LE:\Libs\box2d-2.4.1-mingw-64-bit\lib' '-v' '-static-libgcc' '-o' 'app.exe' '-mtune=core2' '-march=nocona'
C:/Qt6/Tools/mingw810_64/libexec/gcc/x86_64-w64-mingw32/8.1.0/collect2.exe -plugin C:/Qt6/Tools/mingw810_64/libexec/gcc/x86_64-w64-mingw32/8.1.0/liblto_plugin-0.dll -plugin-opt=C:/Qt6/Tools/mingw810_64/libexec/gcc/x86_64-w64-mingw32/8.1.0/lto-wrapper.exe -plugin-opt=-fresolution=C:\Users\8OBSER~1\AppData\Lo cal\Temp\ccjyi2Ud.res -plugin-opt=-pass-through=-lmingw32 -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_eh -plugin-opt=-pass-through=-lmoldname -plugin-opt=-pass-through=-lmingwex -plugin-opt=-pass-through=-lmsvcrt -plugin-opt=-pass-through=-lpthread -plugin-opt=-pass-through=-ladvapi32 -plugin-opt=-pass-through=-lshell32 -plugin-opt=-pass-through=-luser32 -plugin-opt=-pass-through=-lkernel32 -plugin-opt=-pass-through=-liconv -plugin-opt=-pass-through=-lmingw32 -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_eh -plugin-opt=-pass-through=-lmoldname -plugin-opt=-pass-through=-lmingwex -plugin-opt=-pass-through=-lmsvcrt --sysroot=C:/mingw810/x86_64-810-posix-seh-rt_v6-rev0/mingw64 -m i386pep -Bdynamic -o app.exe C:/Qt6/Tools/mingw810_64/x86_64-w64-mingw32/lib/crt2.o C:/Qt6/Tools/mingw810_64/lib/gcc/x86_64-w64-mingw32/8.1.0/crtbegin.o -LE:\Libs\SFML-2.5.1-windows-gcc-7.3.0-mingw-64-bit\lib -LE:\Libs\box2d-2.4.1-mingw-64-bit\lib -LC:/Qt6/Tools/mingw810_64/lib/gcc/x86_64-w64-mingw32/8.1.0 -LC:/Qt6/Tools/mingw810_64/lib/gcc -LC:/Qt6/Tools/mingw810_64/x86_64-w64-mingw32/lib -LC:/Qt6/Tools/mingw810_64/lib -LC:/Qt6/Tools/mingw810_64/x86_64-w64-mingw32/lib -LC:/Qt6/Tools/mingw810_64/lib/gcc/.. main.o -lsfml-graphics-s -lsfml-window-s -lsfml-system-s -lfreetype -lopengl32 -lwinmm -lgdi32 -lbox2d -Bstatic -lwinpthread -Bstatic -lstdc++ -Bdynamic
-lmingw32 -lgcc -lgcc_eh -lmoldname -lmingwex -lmsvcrt -lpthread -ladvapi32 -lshell32 -luser32 -lkernel32 -liconv -lmingw32 -lgcc -lgcc_eh -lmoldname -lmingwex -lmsvcrt C:/Qt6/Tools/mingw810_64/lib/gcc/x86_64-w64-mingw32/8.1.0/crtend.o
COLLECT_GCC_OPTIONS='-LE:\Libs\SFML-2.5.1-windows-gcc-7.3.0-mingw-64-bit\lib' '-LE:\Libs\box2d-2.4.1-mingw-64-bit\lib' '-v' '-static-libgcc' '-o' 'app.exe' '-mtune=core2' '-march=nocona'
Цитата Сообщение от DrOffset Посмотреть сообщение
не нужен уже ключ -static-libstdc++, т.е. его можно не писать, если вы явно указываете линковать статически stdc++.
Да, c -lstdc++ и без -static-libstdc++ работает, зависимостей нет:

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
CC = g++
INC = -I"E:\Libs\SFML-2.5.1-windows-gcc-7.3.0-mingw-64-bit\include" \
      -I"E:\Libs\box2d-2.4.1-mingw-64-bit\include"
LIB = -L"E:\Libs\SFML-2.5.1-windows-gcc-7.3.0-mingw-64-bit\lib" \
      -L"E:\Libs\box2d-2.4.1-mingw-64-bit\lib"
FLAGS = -c -DSFML_STATIC
 
all: main.o
    $(CC) main.o $(LIB) -v -lsfml-graphics-s -lsfml-window-s -lsfml-system-s -lfreetype \
    -lopengl32  -lwinmm  -lgdi32 -lbox2d -static-libgcc -Wl,-Bstatic \
    -lstdc++ -lwinpthread -o app
 
main.o: main.cpp
    $(CC) $(FLAGS) $(INC) main.cpp
>mingw32-make
g++ main.o -L"E:\Libs\SFML-2.5.1-windows-gcc-7.3.0-mingw-64-bit\lib" -L"E:\Libs\box2d-2.4.1-mingw-64-bit\lib" -v -lsfml-graphics-s -lsfml-window-s -lsfml-system-s -lfreetype \
-lopengl32 -lwinmm -lgdi32 -lbox2d -static-libgcc -Wl,-Bstatic \
-lstdc++ -lwinpthread -o app
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=C:/Qt6/Tools/mingw810_64/bin/../libexec/gcc/x86_64-w64-mingw32/8.1.0/lto-wrapper.exe
Target: x86_64-w64-mingw32
Configured with: ../../../src/gcc-8.1.0/configure --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 --prefix=/mingw64 --with-sysroot=/c/mingw810/x86_64-810-posix-seh-rt_v6-rev0/mingw64 --enable-shared --enable-static --disable-multilib --enable-languages=c,c++,fortran,lto --enable-libstdcxx-time=yes --enable-threads=posix --enable-libgomp --enable-libatomic --enable-lto --enable-graphite --enable-checking=release --enable-fully-dynamic-string --enable-version-specific-runtime-libs --disable-libstdcxx-pch --disable-libstdcxx-debug --enable-bootstrap --disable-rpath --disable-win32-registry --disable-nls --disable-werror --disable-symvers --with-gnu-as --with-gnu-ld --with-arch=nocona --with-tune=core2 --with-libiconv --with-system-zlib --with-gmp=/c/mingw810/prerequisites/x86_64-w64-mingw32-static --with-mpfr=/c/mingw810/prerequisites/x86_64-w64-mingw32-static --with-mpc=/c/mingw810/prerequisites/x86_64-w64-mingw32-static --with-isl=/c/mingw810/prerequisites/x86_64-w64-mingw32-static --with-pkgversion='x86_64-posix-seh-rev0, Built by MinGW-W64 project' --with-bugurl=https://sourceforge.net/projects/mingw-w64 CFLAGS='-O2 -pipe -fno-ident -I/c/mingw810/x86_64-810-posix-seh-rt_v6-rev0/mingw64/opt/include -I/c/mingw810/prerequisites/x86_64-zlib-static/include -I/c/mingw810/prerequisites/x86_64-w64-mingw32-static/include' CXXFLAGS='-O2 -pipe -fno-ident -I/c/mingw810/x86_64-810-posix-seh-rt_v6-rev0/mingw64/opt/include -I/c/mingw810/prerequisites/x86_64-zlib-static/include -I/c/mingw810/prerequisites/x86_64-w64-mingw32-static/include' CPPFLAGS=' -I/c/mingw810/x86_64-810-posix-seh-rt_v6-rev0/mingw64/opt/include -I/c/mingw810/prerequisites/x86_64-zlib-static/include -I/c/mingw810/prerequisites/x86_64-w64-mingw32-static/include' LDFLAGS='-pipe -fno-ident -L/c/mingw810/x86_64-810-posix-seh-rt_v6-rev0/mingw64/opt/lib -L/c/mingw810/prerequisites/x86_64-zlib-static/lib -L/c/mingw810/prerequisites/x86_64-w64-mingw32-static/lib '
Thread model: posix
gcc version 8.1.0 (x86_64-posix-seh-rev0, Built by MinGW-W64 project)
COMPILER_PATH=C:/Qt6/Tools/mingw810_64/libexec/gcc/x86_64-w64-mingw32/8.1.0/;C:/Qt6/Tools/mingw810_64/libexec/gcc/;C:/Qt6/Tools/mingw810_64/x86_64-w64-mingw32/bin/
LIBRARY_PATH=C:/Qt6/Tools/mingw810_64/lib/gcc/x86_64-w64-mingw32/8.1.0/;C:/Qt6/Tools/mingw810_64/lib/gcc/;C:/Qt6/Tools/mingw810_64/x86_64-w64-mingw32/lib/;C:/Qt6/Tools/mingw810_64/lib/;C:/Qt6/Tools/mingw810_64/x86_64-w64-mingw32/lib/;C:/Qt6/Tools/mingw810_64/lib/
COLLECT_GCC_OPTIONS='-LE:\Libs\SFML-2.5.1-windows-gcc-7.3.0-mingw-64-bit\lib' '-LE:\Libs\box2d-2.4.1-mingw-64-bit\lib' '-v' '-static-libgcc' '-o' 'app.exe' '-mtune=core2' '-march=nocona'
C:/Qt6/Tools/mingw810_64/libexec/gcc/x86_64-w64-mingw32/8.1.0/collect2.exe -plugin C:/Qt6/Tools/mingw810_64/libexec/gcc/x86_64-w64-mingw32/8.1.0/liblto_plugin-0.dll -plugin-opt=C:/Qt6/Tools/mingw810_64/libexec/gcc/x86_64-w64-mingw32/8.1.0/lto-wrapper.exe -plugin-opt=-fresolution=C:\Users\8OBSER~1\AppData\Lo cal\Temp\ccrikJib.res -plugin-opt=-pass-through=-lmingw32 -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_eh -plugin-opt=-pass-through=-lmoldname -plugin-opt=-pass-through=-lmingwex -plugin-opt=-pass-through=-lmsvcrt -plugin-opt=-pass-through=-lpthread -plugin-opt=-pass-through=-ladvapi32 -plugin-opt=-pass-through=-lshell32 -plugin-opt=-pass-through=-luser32 -plugin-opt=-pass-through=-lkernel32 -plugin-opt=-pass-through=-liconv -plugin-opt=-pass-through=-lmingw32 -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_eh -plugin-opt=-pass-through=-lmoldname -plugin-opt=-pass-through=-lmingwex -plugin-opt=-pass-through=-lmsvcrt --sysroot=C:/mingw810/x86_64-810-posix-seh-rt_v6-rev0/mingw64 -m i386pep -Bdynamic -o app.exe C:/Qt6/Tools/mingw810_64/x86_64-w64-mingw32/lib/crt2.o C:/Qt6/Tools/mingw810_64/lib/gcc/x86_64-w64-mingw32/8.1.0/crtbegin.o -LE:\Libs\SFML-2.5.1-windows-gcc-7.3.0-mingw-64-bit\lib -LE:\Libs\box2d-2.4.1-mingw-64-bit\lib -LC:/Qt6/Tools/mingw810_64/lib/gcc/x86_64-w64-mingw32/8.1.0 -LC:/Qt6/Tools/mingw810_64/lib/gcc -LC:/Qt6/Tools/mingw810_64/x86_64-w64-mingw32/lib -LC:/Qt6/Tools/mingw810_64/lib -LC:/Qt6/Tools/mingw810_64/x86_64-w64-mingw32/lib -LC:/Qt6/Tools/mingw810_64/lib/gcc/.. main.o -lsfml-graphics-s -lsfml-window-s -lsfml-system-s -lfreetype -lopengl32 -lwinmm -lgdi32 -lbox2d -Bstatic -lstdc++ -lwinpthread -lstdc++ -lmingw32
-lgcc -lgcc_eh -lmoldname -lmingwex -lmsvcrt -lpthread -ladvapi32 -lshell32 -luser32 -lkernel32 -liconv -lmingw32 -lgcc -lgcc_eh -lmoldname -lmingwex -lmsvcrt C:/Qt6/Tools/mingw810_64/lib/gcc/x86_64-w64-mingw32/8.1.0/crtend.o
COLLECT_GCC_OPTIONS='-LE:\Libs\SFML-2.5.1-windows-gcc-7.3.0-mingw-64-bit\lib' '-LE:\Libs\box2d-2.4.1-mingw-64-bit\lib' '-v' '-static-libgcc' '-o' 'app.exe' '-mtune=core2' '-march=nocona'
0
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
29.08.2022, 14:43
8Observer8, ну, собственно все подтверждается.

Вообще, для тотальной статической линковки есть ключ -static, который избавит от ручного выписывания конкретных библиотек. Т.е. вместо -static-libgcc -static-libstdc++ -Wl,-Bstatic -lstdc++ -lwinpthread можно просто написать -static. Этот ключ также приведет к смене приоритета линковки одноименных динамических и статических библиотек в пользу последних.

Добавлено через 9 минут
8Observer8, кстати, отдельно, по моему мнению должен сработать вот такой набор параметров:
Bash
1
-static-libgcc -static-libstdc++ -Wl,-Bstatic -lpthread -Wl,-Bdynamic
1
9991 / 2963 / 497
Регистрация: 05.10.2013
Сообщений: 8,144
Записей в блоге: 243
29.08.2022, 17:12
Цитата Сообщение от DrOffset Посмотреть сообщение
вместо -static-libgcc -static-libstdc++ -Wl,-Bstatic -lstdc++ -lwinpthread можно просто написать -static
Работает:

Название: 187221064-ba37d8a6-e472-4e06-b11d-1a732b0675bc.png
Просмотров: 102

Размер: 4.3 Кб

Название: 187221276-95772631-0d1b-461c-a44c-3e325f8bfdef.png
Просмотров: 102

Размер: 4.7 Кб

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
CC = g++
INC = -I"E:\Libs\SFML-2.5.1-windows-gcc-7.3.0-mingw-64-bit\include" \
      -I"E:\Libs\box2d-2.4.1-mingw-64-bit\include"
LIB = -L"E:\Libs\SFML-2.5.1-windows-gcc-7.3.0-mingw-64-bit\lib" \
      -L"E:\Libs\box2d-2.4.1-mingw-64-bit\lib"
FLAGS = -c -DSFML_STATIC
 
all: main.o
    $(CC) main.o $(LIB) -static -lsfml-graphics-s -lsfml-window-s -lsfml-system-s \
        -lfreetype -lopengl32 -lwinmm -lgdi32 -lbox2d -o app
 
main.o: main.cpp
    $(CC) $(FLAGS) $(INC) main.cpp
0
9991 / 2963 / 497
Регистрация: 05.10.2013
Сообщений: 8,144
Записей в блоге: 243
29.08.2022, 17:21
Windows Batch file
1
-static-libgcc -static-libstdc++ -Wl,-Bstatic -lpthread -Wl,-Bdynamic
А этот вариант не работает:



Название: 187223082-9404d7e5-7be7-4c37-a9bf-19bdedbd0c35.png
Просмотров: 102

Размер: 4.8 Кб

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
CC = g++
INC = -I"E:\Libs\SFML-2.5.1-windows-gcc-7.3.0-mingw-64-bit\include" \
      -I"E:\Libs\box2d-2.4.1-mingw-64-bit\include"
LIB = -L"E:\Libs\SFML-2.5.1-windows-gcc-7.3.0-mingw-64-bit\lib" \
      -L"E:\Libs\box2d-2.4.1-mingw-64-bit\lib"
FLAGS = -c -DSFML_STATIC
 
all: main.o
    $(CC) main.o $(LIB) -v -lsfml-graphics-s -lsfml-window-s -lsfml-system-s \
        -lfreetype -lopengl32 -lwinmm -lgdi32 -lbox2d \
        -static-libgcc -static-libstdc++ -Wl,-Bstatic -lpthread -Wl,-Bdynamic -o app
 
main.o: main.cpp
    $(CC) $(FLAGS) $(INC) main.cpp
>mingw32-make
g++ main.o -L"E:\Libs\SFML-2.5.1-windows-gcc-7.3.0-mingw-64-bit\lib" -L"E:\Libs\box2d-2.4.1-mingw-64-bit\lib" -v -lsfml-graphics-s -lsfml-window-s -lsfml-system-s \
-lfreetype -lopengl32 -lwinmm -lgdi32 -lbox2d \
-static-libgcc -static-libstdc++ -Wl,-Bstatic -lpthread -Wl,-Bdynamic -o app
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=C:/Qt6/Tools/mingw810_64/bin/../libexec/gcc/x86_64-w64-mingw32/8.1.0/lto-wrapper.exe
Target: x86_64-w64-mingw32
Configured with: ../../../src/gcc-8.1.0/configure --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 --prefix=/mingw64 --with-sysroot=/c/mingw810/x86_64-810-posix-seh-rt_v6-rev0/mingw64 --enable-shared --enable-static --disable-multilib --enable-languages=c,c++,fortran,lto --enable-libstdcxx-time=yes --enable-threads=posix --enable-libgomp --enable-libatomic --enable-lto --enable-graphite --enable-checking=release --enable-fully-dynamic-string --enable-version-specific-runtime-libs --disable-libstdcxx-pch --disable-libstdcxx-debug --enable-bootstrap --disable-rpath --disable-win32-registry --disable-nls --disable-werror --disable-symvers --with-gnu-as --with-gnu-ld --with-arch=nocona --with-tune=core2 --with-libiconv --with-system-zlib --with-gmp=/c/mingw810/prerequisites/x86_64-w64-mingw32-static --with-mpfr=/c/mingw810/prerequisites/x86_64-w64-mingw32-static --with-mpc=/c/mingw810/prerequisites/x86_64-w64-mingw32-static --with-isl=/c/mingw810/prerequisites/x86_64-w64-mingw32-static --with-pkgversion='x86_64-posix-seh-rev0, Built by MinGW-W64 project' --with-bugurl=https://sourceforge.net/projects/mingw-w64 CFLAGS='-O2 -pipe -fno-ident -I/c/mingw810/x86_64-810-posix-seh-rt_v6-rev0/mingw64/opt/include -I/c/mingw810/prerequisites/x86_64-zlib-static/include -I/c/mingw810/prerequisites/x86_64-w64-mingw32-static/include' CXXFLAGS='-O2 -pipe -fno-ident -I/c/mingw810/x86_64-810-posix-seh-rt_v6-rev0/mingw64/opt/include -I/c/mingw810/prerequisites/x86_64-zlib-static/include -I/c/mingw810/prerequisites/x86_64-w64-mingw32-static/include' CPPFLAGS=' -I/c/mingw810/x86_64-810-posix-seh-rt_v6-rev0/mingw64/opt/include -I/c/mingw810/prerequisites/x86_64-zlib-static/include -I/c/mingw810/prerequisites/x86_64-w64-mingw32-static/include' LDFLAGS='-pipe -fno-ident -L/c/mingw810/x86_64-810-posix-seh-rt_v6-rev0/mingw64/opt/lib -L/c/mingw810/prerequisites/x86_64-zlib-static/lib -L/c/mingw810/prerequisites/x86_64-w64-mingw32-static/lib '
Thread model: posix
gcc version 8.1.0 (x86_64-posix-seh-rev0, Built by MinGW-W64 project)
COMPILER_PATH=C:/Qt6/Tools/mingw810_64/libexec/gcc/x86_64-w64-mingw32/8.1.0/;C:/Qt6/Tools/mingw810_64/libexec/gcc/;C:/Qt6/Tools/mingw810_64/x86_64-w64-mingw32/bin/
LIBRARY_PATH=C:/Qt6/Tools/mingw810_64/lib/gcc/x86_64-w64-mingw32/8.1.0/;C:/Qt6/Tools/mingw810_64/lib/gcc/;C:/Qt6/Tools/mingw810_64/x86_64-w64-mingw32/lib/;C:/Qt6/Tools/mingw810_64/lib/;C:/Qt6/Tools/mingw810_64/x86_64-w64-mingw32/lib/;C:/Qt6/Tools/mingw810_64/lib/
COLLECT_GCC_OPTIONS='-LE:\Libs\SFML-2.5.1-windows-gcc-7.3.0-mingw-64-bit\lib' '-LE:\Libs\box2d-2.4.1-mingw-64-bit\lib' '-v' '-static-libgcc' '-o' 'app.exe' '-mtune=core2' '-march=nocona'
C:/Qt6/Tools/mingw810_64/libexec/gcc/x86_64-w64-mingw32/8.1.0/collect2.exe -plugin C:/Qt6/Tools/mingw810_64/libexec/gcc/x86_64-w64-mingw32/8.1.0/liblto_plugin-0.dll -plugin-opt=C:/Qt6/Tools/mingw810_64/libexec/gcc/x86_64-w64-mingw32/8.1.0/lto-wrapper.exe -plugin-opt=-fresolution=C:\Users\8OBSER~1\AppData\Lo cal\Temp\cc5529yk.res -plugin-opt=-pass-through=-lmingw32 -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_eh -plugin-opt=-pass-through=-lmoldname -plugin-opt=-pass-through=-lmingwex -plugin-opt=-pass-through=-lmsvcrt -plugin-opt=-pass-through=-lpthread -plugin-opt=-pass-through=-ladvapi32 -plugin-opt=-pass-through=-lshell32 -plugin-opt=-pass-through=-luser32 -plugin-opt=-pass-through=-lkernel32 -plugin-opt=-pass-through=-liconv -plugin-opt=-pass-through=-lmingw32 -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_eh -plugin-opt=-pass-through=-lmoldname -plugin-opt=-pass-through=-lmingwex -plugin-opt=-pass-through=-lmsvcrt --sysroot=C:/mingw810/x86_64-810-posix-seh-rt_v6-rev0/mingw64 -m i386pep -Bdynamic -o app.exe C:/Qt6/Tools/mingw810_64/x86_64-w64-mingw32/lib/crt2.o C:/Qt6/Tools/mingw810_64/lib/gcc/x86_64-w64-mingw32/8.1.0/crtbegin.o -LE:\Libs\SFML-2.5.1-windows-gcc-7.3.0-mingw-64-bit\lib -LE:\Libs\box2d-2.4.1-mingw-64-bit\lib -LC:/Qt6/Tools/mingw810_64/lib/gcc/x86_64-w64-mingw32/8.1.0 -LC:/Qt6/Tools/mingw810_64/lib/gcc -LC:/Qt6/Tools/mingw810_64/x86_64-w64-mingw32/lib -LC:/Qt6/Tools/mingw810_64/lib -LC:/Qt6/Tools/mingw810_64/x86_64-w64-mingw32/lib -LC:/Qt6/Tools/mingw810_64/lib/gcc/.. main.o -lsfml-graphics-s -lsfml-window-s -lsfml-system-s -lfreetype -lopengl32 -lwinmm -lgdi32 -lbox2d -Bstatic -lpthread -Bdynamic -Bstatic -lstdc++ -Bdynamic -lmingw32 -lgcc -lgcc_eh -lmoldname -lmingwex -lmsvcrt -lpthread -ladvapi32 -lshell32 -luser32 -lkernel32 -liconv -lmingw32 -lgcc -lgcc_eh -lmoldname -lmingwex -lmsvcrt C:/Qt6/Tools/mingw810_64/lib/gcc/x86_64-w64-mingw32/8.1.0/crtend.o
COLLECT_GCC_OPTIONS='-LE:\Libs\SFML-2.5.1-windows-gcc-7.3.0-mingw-64-bit\lib' '-LE:\Libs\box2d-2.4.1-mingw-64-bit\lib' '-v' '-static-libgcc' '-o' 'app.exe' '-mtune=core2' '-march=nocona'
0
9991 / 2963 / 497
Регистрация: 05.10.2013
Сообщений: 8,144
Записей в блоге: 243
29.08.2022, 17:33
Цитата Сообщение от 8Observer8 Посмотреть сообщение
Работает:
Для этого варианта отсчёт, на всякий случай:

>mingw32-make
g++ main.o -L"E:\Libs\SFML-2.5.1-windows-gcc-7.3.0-mingw-64-bit\lib" -L"E:\Libs\box2d-2.4.1-mingw-64-bit\lib" -v -static -lsfml-graphics-s -lsfml-window-s -lsfml-system-s \
-lfreetype -lopengl32 -lwinmm -lgdi32 -lbox2d -o app
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=C:/Qt6/Tools/mingw810_64/bin/../libexec/gcc/x86_64-w64-mingw32/8.1.0/lto-wrapper.exe
Target: x86_64-w64-mingw32
Configured with: ../../../src/gcc-8.1.0/configure --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 --prefix=/mingw64 --with-sysroot=/c/mingw810/x86_64-810-posix-seh-rt_v6-rev0/mingw64 --enable-shared --enable-static --disable-multilib --enable-languages=c,c++,fortran,lto --enable-libstdcxx-time=yes --enable-threads=posix --enable-libgomp --enable-libatomic --enable-lto --enable-graphite --enable-checking=release --enable-fully-dynamic-string --enable-version-specific-runtime-libs --disable-libstdcxx-pch --disable-libstdcxx-debug --enable-bootstrap --disable-rpath --disable-win32-registry --disable-nls --disable-werror --disable-symvers --with-gnu-as --with-gnu-ld --with-arch=nocona --with-tune=core2 --with-libiconv --with-system-zlib --with-gmp=/c/mingw810/prerequisites/x86_64-w64-mingw32-static --with-mpfr=/c/mingw810/prerequisites/x86_64-w64-mingw32-static --with-mpc=/c/mingw810/prerequisites/x86_64-w64-mingw32-static --with-isl=/c/mingw810/prerequisites/x86_64-w64-mingw32-static --with-pkgversion='x86_64-posix-seh-rev0, Built by MinGW-W64 project' --with-bugurl=https://sourceforge.net/projects/mingw-w64 CFLAGS='-O2 -pipe -fno-ident -I/c/mingw810/x86_64-810-posix-seh-rt_v6-rev0/mingw64/opt/include -I/c/mingw810/prerequisites/x86_64-zlib-static/include -I/c/mingw810/prerequisites/x86_64-w64-mingw32-static/include' CXXFLAGS='-O2 -pipe -fno-ident -I/c/mingw810/x86_64-810-posix-seh-rt_v6-rev0/mingw64/opt/include -I/c/mingw810/prerequisites/x86_64-zlib-static/include -I/c/mingw810/prerequisites/x86_64-w64-mingw32-static/include' CPPFLAGS=' -I/c/mingw810/x86_64-810-posix-seh-rt_v6-rev0/mingw64/opt/include -I/c/mingw810/prerequisites/x86_64-zlib-static/include -I/c/mingw810/prerequisites/x86_64-w64-mingw32-static/include' LDFLAGS='-pipe -fno-ident -L/c/mingw810/x86_64-810-posix-seh-rt_v6-rev0/mingw64/opt/lib -L/c/mingw810/prerequisites/x86_64-zlib-static/lib -L/c/mingw810/prerequisites/x86_64-w64-mingw32-static/lib '
Thread model: posix
gcc version 8.1.0 (x86_64-posix-seh-rev0, Built by MinGW-W64 project)
COMPILER_PATH=C:/Qt6/Tools/mingw810_64/libexec/gcc/x86_64-w64-mingw32/8.1.0/;C:/Qt6/Tools/mingw810_64/libexec/gcc/;C:/Qt6/Tools/mingw810_64/x86_64-w64-mingw32/bin/
LIBRARY_PATH=C:/Qt6/Tools/mingw810_64/lib/gcc/x86_64-w64-mingw32/8.1.0/;C:/Qt6/Tools/mingw810_64/lib/gcc/;C:/Qt6/Tools/mingw810_64/x86_64-w64-mingw32/lib/;C:/Qt6/Tools/mingw810_64/lib/;C:/Qt6/Tools/mingw810_64/x86_64-w64-mingw32/lib/;C:/Qt6/Tools/mingw810_64/lib/
COLLECT_GCC_OPTIONS='-LE:\Libs\SFML-2.5.1-windows-gcc-7.3.0-mingw-64-bit\lib' '-LE:\Libs\box2d-2.4.1-mingw-64-bit\lib' '-v' '-static' '-o' 'app.exe' '-mtune=core2' '-march=nocona'
C:/Qt6/Tools/mingw810_64/libexec/gcc/x86_64-w64-mingw32/8.1.0/collect2.exe -plugin C:/Qt6/Tools/mingw810_64/libexec/gcc/x86_64-w64-mingw32/8.1.0/liblto_plugin-0.dll -plugin-opt=C:/Qt6/Tools/mingw810_64/libexec/gcc/x86_64-w64-mingw32/8.1.0/lto-wrapper.exe -plugin-opt=-fresolution=C:\Users\8OBSER~1\AppData\Lo cal\Temp\ccm3vRUj.res -plugin-opt=-pass-through=-lmingw32 -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_eh -plugin-opt=-pass-through=-lmoldname -plugin-opt=-pass-through=-lmingwex -plugin-opt=-pass-through=-lmsvcrt -plugin-opt=-pass-through=-lpthread -plugin-opt=-pass-through=-ladvapi32 -plugin-opt=-pass-through=-lshell32 -plugin-opt=-pass-through=-luser32 -plugin-opt=-pass-through=-lkernel32 -plugin-opt=-pass-through=-liconv -plugin-opt=-pass-through=-lmingw32 -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_eh -plugin-opt=-pass-through=-lmoldname -plugin-opt=-pass-through=-lmingwex -plugin-opt=-pass-through=-lmsvcrt --sysroot=C:/mingw810/x86_64-810-posix-seh-rt_v6-rev0/mingw64 -m i386pep -Bstatic -o app.exe C:/Qt6/Tools/mingw810_64/x86_64-w64-mingw32/lib/crt2.o C:/Qt6/Tools/mingw810_64/lib/gcc/x86_64-w64-mingw32/8.1.0/crtbegin.o -LE:\Libs\SFML-2.5.1-windows-gcc-7.3.0-mingw-64-bit\lib -LE:\Libs\box2d-2.4.1-mingw-64-bit\lib -LC:/Qt6/Tools/mingw810_64/lib/gcc/x86_64-w64-mingw32/8.1.0 -LC:/Qt6/Tools/mingw810_64/lib/gcc -LC:/Qt6/Tools/mingw810_64/x86_64-w64-mingw32/lib -LC:/Qt6/Tools/mingw810_64/lib -LC:/Qt6/Tools/mingw810_64/x86_64-w64-mingw32/lib -LC:/Qt6/Tools/mingw810_64/lib/gcc/.. main.o -lsfml-graphics-s -lsfml-window-s -lsfml-system-s -lfreetype -lopengl32 -lwinmm -lgdi32 -lbox2d -lstdc++ -lmingw32 -lgcc -lgcc_eh -lmoldname -lmingwex -lmsvcrt -lpthread -ladvapi32 -lshell32 -luser32 -lkernel32 -liconv -lmingw32 -lgcc -lgcc_eh -lmoldname -lmingwex -lmsvcrt C:/Qt6/Tools/mingw810_64/lib/gcc/x86_64-w64-mingw32/8.1.0/crtend.o
COLLECT_GCC_OPTIONS='-LE:\Libs\SFML-2.5.1-windows-gcc-7.3.0-mingw-64-bit\lib' '-LE:\Libs\box2d-2.4.1-mingw-64-bit\lib' '-v' '-static' '-o' 'app.exe' '-mtune=core2' '-march=nocona'
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
CC = g++
 
INC = -I"E:\Libs\SFML-2.5.1-windows-gcc-7.3.0-mingw-64-bit\include" \
      -I"E:\Libs\box2d-2.4.1-mingw-64-bit\include"
LIB = -L"E:\Libs\SFML-2.5.1-windows-gcc-7.3.0-mingw-64-bit\lib" \
      -L"E:\Libs\box2d-2.4.1-mingw-64-bit\lib"
FLAGS = -c -DSFML_STATIC
 
all: main.o
    $(CC) main.o $(LIB) -v -static -lsfml-graphics-s -lsfml-window-s -lsfml-system-s \
        -lfreetype -lopengl32 -lwinmm -lgdi32 -lbox2d -o app
 
main.o: main.cpp
    $(CC) $(FLAGS) $(INC) main.cpp
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
29.08.2022, 17:48
Цитата Сообщение от DrOffset Посмотреть сообщение
8Observer8, кстати, отдельно, по моему мнению должен сработать вот такой набор параметров:
BashВыделить код
1
-static-libgcc -static-libstdc++ -Wl,-Bstatic -lpthread -Wl,-Bdynamic
К сожалению, в моем случае без --whole-archive от зависимости libwinpthread никак не избавится.

Добавлено через 4 минуты
Цитата Сообщение от 8Observer8 Посмотреть сообщение
вместо -static-libgcc -static-libstdc++ -Wl,-Bstatic -lstdc++ -lwinpthread можно просто написать -static
Да походу самый легкий и естественный путь.
0
9991 / 2963 / 497
Регистрация: 05.10.2013
Сообщений: 8,144
Записей в блоге: 243
31.08.2022, 12:15
Цитата Сообщение от SmallEvil Посмотреть сообщение
SFML полный шлак.
Если продукт на моей машине (и не только) глючит (издает звуки на проигрувающее устройстов) и этот баг никак и негде не лечится и не описывается
Я попробовал поискать, что можно использовать для звука. Интерфейс OpenAL - очень сложный, я только на Python смог запустить проигрывание звука с помощью PyOpenAL, а на C++ невероятно сложные примеры, я не нашёл рабочего. Мне нужно, чтобы кроме 2D звука был ещё 3D звук - для 3D приложений на OpenGL, чтобы универсально можно было использовать на SDL2, SFML, Qt и т.д. Мне понравился вариант - FMOD (https://www.fmod.com/). Она проста в использовании, очень активно используется многими разработчиками - много тем на иностранных форумах. Правда, у этой библиотеки бесплатно недоступны исходники, поэтому статически её не получится собрать, но fmod.dll весит не так много, всего 1.76 MB. Подключить версию x64 в Makefile я смог не сразу, но смог, об этом ниже. Библиотека FMOD бесплатна для инди-разработчиков даже для коммерческого распространения своих продуктов с использованием FMOD. На сайте кроме "FMOD Studio" можно скачать "FMOD Engine":



После "FMOD Engine" по пути по умолчанию в папке "core" здесь: C:\Program Files\FMOD SoundSystem\FMOD Studio API Windows\api\core, доступно три папки: "inc", "lib" и "examples". В папке "lib" есть две папки: "x64" и "x86". Но если в папке "x86" есть библиотека "libfmod.a", то в папке "x64" этой библиотеки нет. Я нашёл в какой-то теме на официальном форуме FMOD, что для "x64" нужно подключать "fmod.dll" напрямую. После нескольких экспериментов у меня получилось.

Прикрепил к сообщению архив примера с звуковым файлом gamestart.ogg

box2d-fmod-sfml.zip (1.66 Мб)

Название: 187643360-84f72885-9e97-40a8-9bec-60382f2b1710.png
Просмотров: 88

Размер: 4.9 Кб

Когда запускается EXE с окном на SFML, то проигрывается музыка из начала уровней игры "Battle City" (если кто помнит, это из танчиков на Dendy). В примере подключается библиотека физики Box2D, которая часто используется, например, для детектирования касаний: подбор бонусов, касание со снарядом танка и т.д. В данном примере выводится значение гравитации, но, конечно, для танчиков гравитация должна быть равна нулю, но это здесь неважно.

Напомню, что код ниже нужно сохранить в файл с именем "makefile", вставить свои пути к библиотекам и запускать сборку командой: mingw32-make

makefile

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
CC = g++
INC = -I"E:\Libs\SFML-2.5.1-windows-gcc-7.3.0-mingw-64-bit\include" \
      -I"E:\Libs\box2d-2.4.1-mingw-64-bit\include" \
      -I"C:\Program Files\FMOD SoundSystem\FMOD Studio API Windows\api\core\inc"
LIB = -L"E:\Libs\SFML-2.5.1-windows-gcc-7.3.0-mingw-64-bit\lib" \
      -L"E:\Libs\box2d-2.4.1-mingw-64-bit\lib"
FLAGS = -c -DSFML_STATIC
 
all: main.o
    $(CC) main.o $(LIB) -static \
    "C:\Program Files\FMOD SoundSystem\FMOD Studio API Windows\api\core\lib\x64\fmod.dll" \
    -lsfml-graphics-s -lsfml-window-s -lsfml-system-s -lfreetype \
    -lopengl32  -lwinmm  -lgdi32 -lbox2d -o app
 
main.o: main.cpp
    $(CC) $(FLAGS) $(INC) main.cpp
main.cpp

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <iostream>
#include <SFML/Graphics.hpp>
#include <box2d/box2d.h>
#include <fmod.h>
 
b2Vec2 gravity(0.0f, 9.8f);
b2World world(gravity);
 
FMOD_SYSTEM *m_pSystem;
FMOD_SOUND *m_pSound;
 
int main()
{
    // Print the gravity
    std::cout << gravity.y << std::endl;
 
    FMOD_System_Create(&m_pSystem, FMOD_VERSION);
    FMOD_System_Init(m_pSystem, 32, FMOD_INIT_NORMAL, 0);
    FMOD_System_CreateSound(m_pSystem, "sounds/gamestart.ogg", FMOD_LOOP_OFF | FMOD_2D, 0, &m_pSound);
    FMOD_System_PlaySound(m_pSystem, m_pSound, 0, false, 0);
 
    sf::RenderWindow window(sf::VideoMode(240, 240), "SFML works!");
    sf::CircleShape shape(120.f);
    shape.setFillColor(sf::Color::Green);
 
    while (window.isOpen())
    {
        sf::Event event;
        while (window.pollEvent(event))
        {
            if (event.type == sf::Event::Closed)
                window.close();
        }
 
        window.clear();
        window.draw(shape);
        window.display();
    }
 
    return 0;
}
Миниатюры
Вложения
Тип файла: zip box2d-fmod-sfml.zip (1.66 Мб, 7 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.08.2022, 12:15

MinGW, при установке ошибка: unpacking mingw-get-0.6.2-mingw32-beta-20131004-1-bin.tar.xz
Добрый день, форумчане! Недавно начал изучать Си, решил попрактиковаться. В качестве компилятора не знал какой выбрать (вообще не знаю,...

Может ли MinGW x64 компилить приложения x32? Или нужно для этого отдельно ещё MinGW х32 качать?
Просто решил поиграться с CodeLite.

Mingw-w64 MinGW TDM-GCC
Всем привет. Хочу понять, существует ли принципиальная разница между Mingw-w64, MinGW и TDM-GCC? Какие плюсы/минусы у этих трех...

Как подключить колонки edifier r2800 к сабу yamaha sw100, и все это подключить к телевизору и пк ?
Здравсвуйте, ломаю голову, не знаю как подключить активный сабвуфер Yamaha ns sw100(есть только вход aux), к компютерным колонкам 2.0...

Как пересобрать python на mingw?
Доброго времени суток, есть задача запустить следующий python-код из C: #include &lt;stdio.h&gt; #include &lt;Python.h&gt; int...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru