Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Qt
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.82/340: Рейтинг темы: голосов - 340, средняя оценка - 4.82
StarWind
1 / 1 / 1
Регистрация: 06.10.2012
Сообщений: 27
1

Отучение Qt 5.2.0 от библиотек MinGW и Qt

05.01.2014, 23:31. Просмотров 69141. Ответов 171
Метки нет (Все метки)

Данная тема уже рассматривалась тут Сборка Qt: отучение Qt от mingw10.dll, libgcc_s_dw2-1.dll и других Qt***.dll По первому способу у меня не получилось. Может есть какие-то более современные гайды? Мое гугление ничего не дало. Или второй и третий способ с распаковкой исходников от 4.7.4 подойдет для 5.2?
1
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.01.2014, 23:31
Ответы с готовыми решениями:

Отучение Qt 5.2.0 от библиотек
http://www.cyberforum.ru/qt/thread1063918.html, пост Flassie, так вот у меня файл configure в...

Отучение Qt 5.2.0 от библиотек
Привет, форумчане! Недавно установил Qt 5.2.0 на Windows. Столкнулся с проблемой требования кучи...

Отлучение Qt 5.3.0 от библиотек MinGW и Qt
Отлучение Qt 5.3.0 от библиотек MinGW и Qt У меня Винда, или ОС Windows 7 64-bit (Ultimatiym) ...

Динамическое подключение библиотек C++ MinGW
Импользую VS Code и MinGW. Нужно динамически подключить несколько библиотек. Но при вызове...

Ошибка с подключением библиотек iostream.h в MinGW
Помогите разобраться. Не получается подключить библиотеки iostream.h. В среде MinGW 2.1 #include...

171
Avazart
Эксперт С++
7949 / 5770 / 571
Регистрация: 10.12.2010
Сообщений: 26,494
Записей в блоге: 17
16.02.2015, 17:26 101
Да и стоит заметить что флаги меняются от версии к версии Qt.
1
CriDos
Поклонник Qt
313 / 209 / 41
Регистрация: 09.11.2013
Сообщений: 336
Записей в блоге: 1
16.02.2015, 17:59 102
8Observer8, судя по тому, что в файле configure, переменной "CFG_AUDIO_BACKEND" по умолчанию присваивается значение auto, можно предположить, что multimedia уже включен по умолчанию в конфигураторе, НО, почему-то не собирается вместе с остальными модулями.

Кстати, открыл сейчас qtmultimedia.pro в среде с выбранным статическим комплектом и посыпались сообщения:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Project MESSAGE: cmake executable not found. Not running CMake unit tests
Project ERROR: No module claims plugin type 'resourcepolicy'
updatePchInfo: switching to none
Project ERROR: Unknown module(s) in QT: multimedia-private quick
Project MESSAGE: cmake executable not found. Not running CMake unit tests
Project ERROR: Unknown module(s) in QT: multimedia-private
Project ERROR: Unknown module(s) in QT: qml quick
Project ERROR: Unknown module(s) in QT: quick qml
Project ERROR: Unknown module(s) in QT: qml quick
Project ERROR: Unknown module(s) in QT: quick qml
Project ERROR: No module claims plugin type 'resourcepolicy'
Project ERROR: This library cannot be built for static linkage
Project ERROR: Unknown module(s) in QT: qml quick
Project ERROR: Unknown module(s) in QT: qml quick
Project ERROR: Unknown module(s) in QT: qml
Project ERROR: Unknown module(s) in QT: qmltest qml
Project ERROR: Unknown module(s) in QT: qmltest qml
Project ERROR: Unknown module(s) in QT: multimediawidgets multimedia-private
Project ERROR: Unknown module(s) in QT: quick
Project ERROR: Unknown module(s) in QT: qml
Project ERROR: Unknown module(s) in QT: quick qml
Project ERROR: Unknown module(s) in QT: quick qml
Project ERROR: Unknown module(s) in QT: quick
Project ERROR: Unknown module(s) in QT: quick

Хотя с динамическим комплектом (отдельно пробовал), собирается - отлично.
1
ШКІПЕР
97 / 97 / 22
Регистрация: 14.04.2010
Сообщений: 280
Записей в блоге: 9
Завершенные тесты: 1
01.03.2015, 21:19 103
CriDos, добавлю ещё 5 копеек от себя посреди разговора. Политика qt (на сколько мне понятно) не позволяет просто взять и собирать "3d party" в статической сборке. Это касается, к примеру, webkit-a... Сколько играюсь с qt и в любом случае динамическая сборка имеет хоть какие но преимущества.
0
maksis9n
2 / 2 / 0
Регистрация: 02.01.2013
Сообщений: 50
10.03.2015, 21:16 104
Цитата Сообщение от ШКІПЕР Посмотреть сообщение
CriDos, добавлю ещё 5 копеек от себя посреди разговора. Политика qt (на сколько мне понятно) не позволяет просто взять и собирать "3d party" в статической сборке. Это касается, к примеру, webkit-a... Сколько играюсь с qt и в любом случае динамическая сборка имеет хоть какие но преимущества.
подскажи пожалуйста как динамическую сборку делать? и будет ли она к примеру работать на компьютерах где нету qt?
0
10.03.2015, 21:16
ШКІПЕР
97 / 97 / 22
Регистрация: 14.04.2010
Сообщений: 280
Записей в блоге: 9
Завершенные тесты: 1
11.03.2015, 09:44 105
maksis9n, для этого достаточно будет использовать тот набор что уже привязан к qt - изобретать ничего не нужно. Просто собираете в release - получаете exe. Дальше, как вариант, собираете из папки bin (возможно и не только) все нужные dll-ки. Если программа только Gui - все либы весят порядком 35мб (это для версии 5.4). Выдёргивать нужно те dll соответственно настройкам компилятора. Скажем, если собиралось на mingw491_32 то найти dll можно в Qt\5.4\5.4\mingw491_32\bin. Базовый набор для "а потэстить" собранную програмулину на mingw491 - http://vk.cc/3yCKrY. И да, так будет работать на любой платформе если рядом будут нужные библиотеки, и даже под wine (:
1
Avazart
Эксперт С++
7949 / 5770 / 571
Регистрация: 10.12.2010
Сообщений: 26,494
Записей в блоге: 17
11.03.2015, 14:58 106
Цитата Сообщение от maksis9n Посмотреть сообщение
подскажи пожалуйста как динамическую сборку делать? и будет ли она к примеру работать на компьютерах где нету qt?
Динамическая сборка- это обычная сборка которую можно скачать с оф.сайта (которая тянет комплект dll-лок и плагинов)
1
maksis9n
2 / 2 / 0
Регистрация: 02.01.2013
Сообщений: 50
11.03.2015, 15:36 107
ШКІПЕР, Avazart, спасибо большое за пояснение)
0
Bmg113
202 / 148 / 5
Регистрация: 14.03.2013
Сообщений: 784
01.04.2015, 16:45 108
Получилось сделать Статику по инструкции. (Текстовый вид - Ссылка и Видео вид - Ссылка)
Работает ActiveQt
Работает Qt Multimedia
Не работает Qt WebKit

p.s. Тестил на Qt 5.4.0
0
Avazart
Эксперт С++
7949 / 5770 / 571
Регистрация: 10.12.2010
Сообщений: 26,494
Записей в блоге: 17
01.04.2015, 16:55 109
Bmg113, Опции сборки указал бы что ли ..
0
Bmg113
202 / 148 / 5
Регистрация: 14.03.2013
Сообщений: 784
01.04.2015, 17:25 110
Цитата Сообщение от Avazart Посмотреть сообщение
Опции сборки указал бы что ли ..
Ключевые моменты.

1). Установить.
a) Python
б) Ruby
в) Perl
2). Добавить в конец файла С:\Qt\5.3\Src\qtbase\mkspecs\win32-g++\qmake.conf (Если путь по умолчанию)
# Static
QMAKE_LFLAGS += -static -static-libgcc
QMAKE_CFLAGS_RELEASE -= -O2
QMAKE_CFLAGS_RELEASE += -Os -momit-leaf-frame-pointer
DEFINES += QT_STATIC_BUILD
CONFIG += static
# Static
3). Создать make.bat и запустить в обычной консоле. Вот текст make.bat.
set QtDir=C:\Qt\5.3\static
set MingwDir=C:\Qt\Tools\mingw482_32
set QtSrcDir=C:\Qt\5.3\Src
set CMAKE_INCLUDE_PATH=%MingwDir%\i686-w64-mingw32\include
:: Set a clean path including MinGW.
set PATH=%PATH%;%MingwDir%\bin;%MingwDir%\opt\bin
:: Force English locale to avoid weird effects of tools localization.
set LANG=en
:: Set environment variable QT_INSTALL_PREFIX. Documentation says it should be
:: used by configure as prefix but this does not seem to work. So, we will
:: also specify -prefix option in configure.
set QT_INSTALL_PREFIX=%QtDir%
:: Configure, compile and install Qt.
cmd /c "%QtSrcDir%\configure.bat -static -debug-and-release -platform win32-g++ -prefix %QtDir% -qt-zlib -qt-pcre -qt-libpng -qt-libjpeg -qt-freetype -opengl desktop -qt-sql-sqlite -no-openssl -opensource -confirm-license -make libs -nomake tools -nomake examples -nomake tests" > log_cmd.txt
mingw32-make -k -j4 > log_make.txt
mingw32-make -k -j4 install > log_make_install.txt
4). Ну добавить новый qmake в настройках и добавлять в каждый проект в pro файл.
QMAKE_LFLAGS += -static -static-libgcc

p.s. всегда Вы не довольны =)
3
CriDos
Поклонник Qt
313 / 209 / 41
Регистрация: 09.11.2013
Сообщений: 336
Записей в блоге: 1
21.07.2015, 21:57 111
Ну что ж, недавно полностью переработал свой скрипт статической сборки Qt, с учётом всех требуемых мне плюшек (qml, qt3d, WinExtras и т.д.).
Может пригодится кому
Теперь не требуется вносить правки в qmake.conf, т.к. имеющиеся опции конфигуратора (-static -static-runtime) позволяют полностью избавиться от сторонних библиотек.
Поддерживается создание статически слинкованных библиотек.
Qt 5.5 собирал вот этим: i686-5.1.0-release-posix-dwarf-rt_v4-rev0
Для успешной сборки ActiveQt, требуется внести патч в Mingw-w64: [Mingw-w64-public] [PATCH] Remove duplicates
Вот какой набор статических библиотек Qt я получаю на выходе:
libs

libQt5Bootstrap.a
libQt5CLucene.a
libQt5Concurrent.a
libQt5Core.a
libQt5Declarative.a
libQt5Gui.a
libQt5Help.a
libQt5Location.a
libQt5Multimedia.a
libQt5MultimediaQuick_p.a
libQt5MultimediaWidgets.a
libQt5Network.a
libQt5Nfc.a
libQt5OpenGL.a
libQt5OpenGLExtensions.a
libQt5PlatformSupport.a
libQt5Positioning.a
libQt5PrintSupport.a
libQt5Qml.a
libQt5QmlDevTools.a
libQt5Quick.a
libQt5QuickParticles.a
libQt5QuickTest.a
libQt5QuickWidgets.a
libQt5Script.a
libQt5ScriptTools.a
libQt5Sensors.a
libQt5SerialPort.a
libQt5Sql.a
libQt5Svg.a
libQt5Test.a
libQt5UiTools.a
libQt5WebChannel.a
libQt5WebSockets.a
libQt5Widgets.a
libQt5WinExtras.a
libQt5Xml.a
libQt5XmlPatterns.a
libQt53DCore.a
libQt53DInput.a
libQt53DQuick.a
libQt53DQuickRenderer.a
libQt53DRenderer.a
libqtfreetype.a
libqtharfbuzzng.a
libqtmain.a
libqtpcre.a
libpoly2tri.a
libQt5AxBase.a
libQt5AxContainer.a
libQt5AxServer.a
libQt5Bluetooth.a

plugins

sensors\libqtsensors_generic.a
geoservices\libqtgeoservices_mapbox.a
mediaservice\libdsengine.a
geoservices\libqtgeoservices_osm.a
geoservices\libqtgeoservices_nokia.a
audio\libqtaudio_windows.a
mediaservice\libqtmedia_audioengine.a
position\libqtposition_positionpoll.a
playlistformats\libqtmultimedia_m3u.a
qmltooling\libqmldbg_qtquick2.a
qmltooling\libqmldbg_tcp.a
imageformats\libqwebp.a
imageformats\libqtiff.a
imageformats\libqwbmp.a
imageformats\libqtga.a
imageformats\libqjp2.a
imageformats\libqmng.a
imageformats\libqicns.a
imageformats\libqdds.a
imageformats\libqsvg.a
iconengines\libqsvgicon.a
platforms\libqwindows.a
printsupport\libwindowsprintersupport.a
generic\libqtuiotouchplugin.a
platforms\libqoffscreen.a
bearer\libqnativewifibearer.a
bearer\libqgenericbearer.a
platforms\libqminimal.a
imageformats\libqico.a
qml1tooling\libqmldbg_inspector.a
qml1tooling\libqmldbg_tcp_qtdeclarative.a
sensorgestures\libqtsensorgestures_plugin.a
sensorgestures\libqtsensorgestures_shakeplugin.a

Ну и сам bat скрипт:
bat

Bash
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
42
43
44
45
::Версия 1.0
@ECHO OFF
set MINGW=D:/dev/compilers/mingw-w64/i686-5.1.0-release-posix-dwarf-rt_v4-rev0/mingw32
set QT_OUTPUT_MAKE=D:/dev/Qt/QtLibs/Qt5.5.0_static_release_x32_5.1.0v4-rev0
set QT_SRC=D:/QtSrc
::  [url]http://strawberryperl.com/[/url]
set PERL_BIN=C:/Strawberry/perl/bin
::  [url]http://rubyinstaller.org/downloads/[/url]
set RUBY_BIN=C:/Ruby22/bin
 
set /a NUM_JOBS=%NUMBER_OF_PROCESSORS%-1
set MINGW_BIN=%MINGW%/bin
set PYTHON_BIN=%MINGW%/opt/bin
set QT_QMAKE=%QT_QBASE%/qtbase/bin
set PATH=%MINGW_BIN%;%QT_QMAKE%;%PYTHON_BIN%;%PERL_BIN%;%RUBY_BIN%
cd /D %QT_SRC%
 
echo 1) Configure (default)
echo 2) Make
echo 3) Install
set /p step=Enter step: 
if "%step%"=="1" goto configure
if "%step%"=="2" goto make
if "%step%"=="3" goto install
goto configure
 
:configure
echo ============== Running configure ==============
set LOG=%~dp0/configure.log
::set QT_SKIP=-skip webengine -skip webkit
set QT_NOMAKE=-nomake examples -nomake tests -nomake tools -no-angle -no-openssl
set QT_ACCEPT_LICENSE=-opensource -confirm-license
set QT_PREFIX=-prefix %QT_OUTPUT_MAKE%
 
configure -release -static -static-runtime -opengl desktop -make libs %QT_ACCEPT_LICENSE% %QT_PREFIX% %QT_SKIP% %QT_NOMAKE%>>%LOG% 2>&1
 
:make
echo ============== Running make ==============
set LOG=%~dp0/make.log
mingw32-make -k -j%NUM_JOBS%>>%LOG% 2>&1
 
:install
echo ============== Running install ==============
set LOG=%~dp0/install.log
mingw32-make -k -j%NUM_JOBS% install>>%LOG% 2>&1


p.s. Для VS2015C появится в ближайшее время.
p.p.s Удачи

Добавлено через 9 часов 41 минуту
Собственно, скрипт сборки для Visual Studio Community 2015:
bat

Bash
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
42
:: Версия 1.0
@ECHO OFF
set QT_OUTPUT_MAKE=D:/dev/Qt/QtLibs/Qt5.5.0_vs2015_static_release_x32
set QT_SRC=D:/QtSrc
::  [url]www.python.org/downloads/[/url]
set PYTHON_BIN=C:/Python34
::  [url]http://strawberryperl.com/[/url]
set PERL_BIN=C:/Strawberry/perl/bin
::  [url]http://rubyinstaller.org/downloads/[/url]
set RUBY_BIN=C:/Ruby22/bin
 
set QT_QMAKE=%QT_QBASE%/qtbase/bin
set PATH=%PATH%;%QT_QMAKE%;%PYTHON_BIN%;%PERL_BIN%;%RUBY_BIN%
cd /D %QT_SRC%
 
echo 1) Configure (default)
echo 2) Make
echo 3) Install
set /p step=Enter step: 
if "%step%"=="1" goto configure
if "%step%"=="2" goto make
if "%step%"=="3" goto install
goto configure
 
:configure
echo ============== Running configure ==============
set LOG=%~dp0/configure.log
::set QT_SKIP=-skip webengine -skip webkit
set QT_NOMAKE=-nomake examples -nomake tests -nomake tools -no-angle -no-openssl
set QT_ACCEPT_LICENSE=-opensource -confirm-license
set QT_PREFIX=-prefix %QT_OUTPUT_MAKE%
configure -release -static -static-runtime -opengl desktop -make libs %QT_ACCEPT_LICENSE% %QT_PREFIX% %QT_SKIP% %QT_NOMAKE%>>%LOG% 2>&1
 
:make
echo ============== Running make ==============
set LOG=%~dp0/make.log
nmake -k>>%LOG% 2>&1
 
:install
echo ============== Running install ==============
set LOG=%~dp0/install.log
nmake -k install>>%LOG% 2>&1

Следующий набор статических библиотек получаю на выходе:
libs

Qt53DQuick.lib
Qt53DQuickRenderer.lib
Qt53DRenderer.lib
qtfreetype.lib
qtharfbuzzng.lib
qtmain.lib
qtpcre.lib
poly2tri.lib
Qt5AxBase.lib
Qt5AxContainer.lib
Qt5AxServer.lib
Qt5Bluetooth.lib
Qt5Bootstrap.lib
Qt5CLucene.lib
Qt5Concurrent.lib
Qt5Core.lib
Qt5Declarative.lib
Qt5Gui.lib
Qt5Help.lib
Qt5Location.lib
Qt5Multimedia.lib
Qt5MultimediaQuick_p.lib
Qt5MultimediaWidgets.lib
Qt5Network.lib
Qt5Nfc.lib
Qt5OpenGL.lib
Qt5OpenGLExtensions.lib
Qt5PlatformSupport.lib
Qt5Positioning.lib
Qt5PrintSupport.lib
Qt5Qml.lib
Qt5QmlDevTools.lib
Qt5Quick.lib
Qt5QuickParticles.lib
Qt5QuickTest.lib
Qt5QuickWidgets.lib
Qt5Script.lib
Qt5ScriptTools.lib
Qt5Sensors.lib
Qt5SerialPort.lib
Qt5Sql.lib
Qt5Svg.lib
Qt5Test.lib
Qt5UiTools.lib
Qt5WebChannel.lib
Qt5WebSockets.lib
Qt5Widgets.lib
Qt5WinExtras.lib
Qt5Xml.lib
Qt5XmlPatterns.lib
Qt53DCore.lib
Qt53DInput.lib

plugins

imageformats\qtiff.lib
imageformats\qtga.lib
imageformats\qmng.lib
imageformats\qjp2.lib
imageformats\qicns.lib
imageformats\qdds.lib
sensorgestures\qtsensorgestures_plugin.lib
sensorgestures\qtsensorgestures_shakeplugin.lib
sensors\qtsensors_generic.lib
geoservices\qtgeoservices_mapbox.lib
geoservices\qtgeoservices_osm.lib
geoservices\qtgeoservices_nokia.lib
position\qtposition_positionpoll.lib
mediaservice\wmfengine.lib
mediaservice\dsengine.lib
audio\qtaudio_windows.lib
mediaservice\qtmedia_audioengine.lib
playlistformats\qtmultimedia_m3u.lib
qmltooling\qmldbg_qtquick2.lib
qmltooling\qmldbg_tcp.lib
imageformats\qsvg.lib
iconengines\qsvgicon.lib
printsupport\windowsprintersupport.lib
generic\qtuiotouchplugin.lib
platforms\qwindows.lib
platforms\qoffscreen.lib
platforms\qminimal.lib
imageformats\qico.lib
bearer\qnativewifibearer.lib
bearer\qgenericbearer.lib
qml1tooling\qmldbg_tcp_qtdeclarative.lib
qml1tooling\qmldbg_inspector.lib
imageformats\qwebp.lib
imageformats\qwbmp.lib


p.s. Тут сборка работает (проверено) без патчей.
6
Avazart
Эксперт С++
7949 / 5770 / 571
Регистрация: 10.12.2010
Сообщений: 26,494
Записей в блоге: 17
21.07.2015, 22:21 112
Понту собирать без ssl.
0
proninyaroslav
2 / 2 / 0
Регистрация: 29.01.2013
Сообщений: 42
26.07.2015, 11:34 113
CriDos, Bmg113, а qml на ваших сборках работает в полной мере? Сейчас занимаюсь проектом на qml, ищу возможности статической линковки на Windows и OS X. На линуксе проблем с наличием самого Qt нет, но на Windows и OS X по умолчанию они не стоят, а заставлять пользователя устанавливать что-либо дополнительное выглядит странно. Поэтому решил использовать статическую линковку с Qt. На Windows размер библиотек получается а пределах 30-50 мб, а вот на OS X размер составляет 100-200 мб (при том, что сама среда разработки Qt весит на маке 10 гб). Для среднего приложения 200 мб библиотек это весьма странно. Вопрос: есть ли способ уменьшить размеры скомпилированного файла? Хотелось бы услышать советы от тех, кто постоянно пользуется Qt, как вы справляетесь с отсутствием самой Qt на многих системах?
0
Avazart
Эксперт С++
7949 / 5770 / 571
Регистрация: 10.12.2010
Сообщений: 26,494
Записей в блоге: 17
26.07.2015, 11:53 114
Так на линукс вроде как бы тоже нужно ставить Qt и тоже "инсталятором".
0
proninyaroslav
2 / 2 / 0
Регистрация: 29.01.2013
Сообщений: 42
26.07.2015, 12:48 115
Avazart, 1. он есть практически в каждом дистрибутиве; 2. если его нет, то можно установить с обычного репозитория или сам пакет с программой скачает все зависимости пакета.
0
Avazart
Эксперт С++
7949 / 5770 / 571
Регистрация: 10.12.2010
Сообщений: 26,494
Записей в блоге: 17
26.07.2015, 13:01 116
Так вроде как в репах нет Qt5.
0
proninyaroslav
2 / 2 / 0
Регистрация: 29.01.2013
Сообщений: 42
26.07.2015, 13:18 117
Avazart, в дебиане 5.3, убунта 5.2.1, арч 5.5, опенсуся 5.4, федора 5.4 и т.д.
1
Avazart
26.07.2015, 15:00
  #118

Не по теме:

А как пакет называется? Ибо раньше не было как я помню

0
proninyaroslav
26.07.2015, 17:34
  #119

Не по теме:

Avazart, смотря в каком дистрибутиве. На арче qt5-base, на убунте, дебиане и производных qt-default, на федораподобных qt5-qtbase и т.д

0
Avazart
26.07.2015, 18:05     Отучение Qt 5.2.0 от библиотек MinGW и Qt
  #120

Не по теме:

sudo apt-get install qt5-default
да есть на debian вижу.

0
26.07.2015, 18:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.07.2015, 18:05
Привет! Вот еще темы с ответами:

Mingw пути включаемых файлов и библиотек по умолчанию
Здравствуйте! Решил попробовать поработать с кросс-платформенным компилятором gcc в Windows. Для...

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

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


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

Или воспользуйтесь поиском по форуму:
120
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.