-47 / 3 / 0
Регистрация: 31.12.2017
Сообщений: 204
1

Библиотеки mingw-w64

30.10.2018, 09:37. Показов 2562. Ответов 17
Метки нет (Все метки)

Папка lib содержит 1334 файла с расширением .a. Вот некоторые из них:

libadvapi32.a
libbrowser.a
libcatsrv.a
libcatsrvps.a
libcatsrvut.a
libdanim.a
libfastprox.a
libframedyn.a
libgdi32.a
libgdiplus.a
libopengl32.a
libquery.a


Как понять назначение каждой библиотеки, расположенной в этой папке, и как понять, когда ту или иную библиотеку нужно линковать?

Добавлено через 1 минуту
Никакой документации на эту тему мне найти не удалось.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.10.2018, 09:37
Ответы с готовыми решениями:

Mingw-w64 MinGW TDM-GCC
Всем привет. Хочу понять, существует ли принципиальная разница между Mingw-w64, MinGW и...

MinGW-w64 и Qt
Узнал, что есть такая штука, как mingw 64bit. И тут мне стало интересно, будет ли qt поддерживать...

MinGW-w64 компиляция
Проблема не могу скомпилировать код под x64 пробовал с ключом -m64 выдаёт ошибку "sorry,...

MinGW-w64 для Windows и zlib
Здравствуйте. Установил сборку (необходим std::thread) и подключил к IDE Code::Blocks. Затем...

17
7096 / 6092 / 2779
Регистрация: 14.04.2014
Сообщений: 26,212
30.10.2018, 09:48 2
А зачем? Ты же в настройках просто путь к библиотекам указываешь.
0
-47 / 3 / 0
Регистрация: 31.12.2017
Сообщений: 204
30.10.2018, 10:03  [ТС] 3
nmcf, в смысле?
0
7096 / 6092 / 2779
Регистрация: 14.04.2014
Сообщений: 26,212
30.10.2018, 10:23 4
Зачем тебе назначение каждой? Ты просто настраиваешь среду и программируешь, а она там сама разберётся.
0
-47 / 3 / 0
Регистрация: 31.12.2017
Сообщений: 204
30.10.2018, 10:32  [ТС] 5
nmcf, в состав компиляционной системы mingw включается большое число библиотек. Можно проигнорировать этот факт, можно пытаться разобраться, зачем нужна каждая из них.
0
7096 / 6092 / 2779
Регистрация: 14.04.2014
Сообщений: 26,212
30.10.2018, 10:34 6
Т. е. никакой практической цели в этом нет?
0
991 / 217 / 21
Регистрация: 20.05.2016
Сообщений: 951
Записей в блоге: 17
30.10.2018, 10:35 7
Зачем вам разбирать каждый из 1334 файлов?
0
-47 / 3 / 0
Регистрация: 31.12.2017
Сообщений: 204
30.10.2018, 10:37  [ТС] 8
Цитата Сообщение от bedvit Посмотреть сообщение
Зачем вам разбирать каждый из 1334 файлов?
Мне разбирать не нужно. Мне нужна какая-то документация, описывающая каждый из 1334 файлов. Но её нет, или я плохо искал.
0
7096 / 6092 / 2779
Регистрация: 14.04.2014
Сообщений: 26,212
30.10.2018, 10:47 9
Для чего? Ты не стой стороны заходишь. Например, advapi и gdi - это от Windows, наверное. Вот и изучай WinAPI.
0
3370 / 1925 / 370
Регистрация: 09.09.2017
Сообщений: 7,874
30.10.2018, 11:07 10
Цитата Сообщение от Jzx Посмотреть сообщение
как понять, когда ту или иную библиотеку нужно линковать?
Запускаете компиляцию. Она ругается что нет нужных символов, например:
Код
undefined reference to `SDL_SetWindowTitle'
undefined reference to `SDL_GL_DeleteContext'
и еще десяток подобных
Самое простое - погуглить к какой библиотеке они относятся. Впрочем, в данном случае из названия видно, что надо подключать -lSDL или -lSDL2. Дальше можно методом тыка (даже проще), а можно заглянуть в обе библиотеки и поискать там нужные функции:
Код
$ nm libSDL.a 2>/dev/null | grep SDL_SetWindowTitle
$
$ nm libSDL2.a 2>/dev/null | grep SDL_SetWindowTitle
000000000000ad20 T SDL_SetWindowTitle
0000000000003980 t SDL_SetWindowTitle_DEFAULT
                 U SDL_SetWindowTitle_REAL
0000000000001510 T SDL_SetWindowTitle_REAL
Как видим, в SDL1 нужной функции нет, а в SDL2 - есть, значит ее и подключаем.
После чего повторяем компиляцию и ищем следующую библиотеку, которой не хватает проекту. Впрочем, обычно программист и так знает какие библиотеки он хочет использовать, а в документации на библиотеку прописываются все ключи.
2
-47 / 3 / 0
Регистрация: 31.12.2017
Сообщений: 204
30.10.2018, 11:44  [ТС] 11
nmcf, большинство названий действительно дублированы из системной папки System32, поэтому логично предположить, что всё это имеет отношение к WinAPI. Но не все, например нет соответствия у libdanim.a и у libfastprox.a.
0
7096 / 6092 / 2779
Регистрация: 14.04.2014
Сообщений: 26,212
30.10.2018, 11:46 12
Ну так ты смотри, какие h-файлы есть. По ним и сопоставляй.
0
-47 / 3 / 0
Регистрация: 31.12.2017
Сообщений: 204
30.10.2018, 12:10  [ТС] 13
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
$ nm libSDL.a 2>/dev/null | grep SDL_SetWindowTitle $ $ nm libSDL2.a 2>/dev/null | grep SDL_SetWindowTitle 000000000000ad20 T SDL_SetWindowTitle 0000000000003980 t SDL_SetWindowTitle_DEFAULT U SDL_SetWindowTitle_REAL 0000000000001510 T SDL_SetWindowTitle_REAL
А как средствами Windows искать в статических библиотеках нужные функции?
0
15263 / 8230 / 1993
Регистрация: 30.01.2014
Сообщений: 14,014
30.10.2018, 12:49 14
Jzx, по WinAPI вся документация здесь: https://docs.microsoft.com/en-... -api-list\

Например, нам нужна функция, которая покажет изменения в заданном каталоге. Открываем документацию: https://docs.microsoft.com/en-... changesexw
Идем вниз страницы и видим:
Header winbase.h (include Windows.h)
Library Kernel32.lib
DLL Kernel32.dll
Добавлено через 4 минуты
Или, например функция GDI+, скажем GdiplusShutdown, открываем документацию: https://docs.microsoft.com/en-... usshutdown
Идем вниз страницы и видим:
Header gdiplusinit.h (include Gdiplus.h)
Library Gdiplus.lib
DLL Gdiplus.dll
Gdiplus.lib соответствует libgdiplus.a из вашего списка.

Добавлено через 20 минут
Цитата Сообщение от Jzx Посмотреть сообщение
нет соответствия у libdanim.a и у libfastprox.a.
Это отдельные библиотеки, вам надо найти документацию для каждой из них и там посмотреть.

Но вообще вам это зачем нужно? Думаете программисту надо мало всего помнить, если вы просто так ненужные вам библиотеки решили изучать? Вот появится у вас задача, где они потребуются, тогда и изучите.
Вы ведь учтите еще, что сборок mingw великое множество, и комплектные библиотеки там могут различаться. Вы будете все возможное сборки штудировать? А если завтра появится новая сборка, с дополнительными библиотеками? В общем, это в основном пустая трата времени, без практики эти знания все равно быстро улетучатся.
1
3370 / 1925 / 370
Регистрация: 09.09.2017
Сообщений: 7,874
30.10.2018, 12:50 15
Цитата Сообщение от Jzx Посмотреть сообщение
А как средствами Windows искать в статических библиотеках нужные функции?
повторяю: проще всего в Гугле.
Но, если не ошибаюсь, в mingw входят и nm, и grep, и bash и прочие стандартные утилиты.
И еще повторю, но уже за nmcf, идите от задачи. Чего вы хотите добиться своей программой? Допустим, придумали цель. Какой для этого нужен функционал? Есть ли он в готовых библиотеках? Допустим, есть и даже в нескольких. Выбираете ту, которая больше нравится. Внимательно читаете на нее документацию, там обычно пишут какие *.h файлы подключать и какие библиотеки для чего предназначены.
А перебирать все подряд - пустая трата времени.
1
15263 / 8230 / 1993
Регистрация: 30.01.2014
Сообщений: 14,014
30.10.2018, 12:58 16
Цитата Сообщение от Jzx Посмотреть сообщение
А как средствами Windows искать в статических библиотеках нужные функции?
Для DLL и EXE можно использовать DependencyWalker.
Для того, чтобы под Windows сработал способ, показанный выше, можно поставить комплект инструментов MSYS2 - это unix окружение в нативной windows среде.
Также, можно поставить плагин FileInfo для total commander, тогда по F3 можно будет смотреть экспортируемые функции из *.lib,*.a,*.dll и проч.
1
113 / 22 / 0
Регистрация: 28.10.2012
Сообщений: 37
31.10.2018, 10:43 17
По поводу поиска символов в библиотеках: утилита nm из состава binutils.
Под MSYS2 можно можно с помощью различных поисковых утилит поискать нужный символ, например утилита ag (https://github.com/ggreer/the_silver_searcher)

Как разработчик MSYS2 заяляю что это форк Cygwin
1
MrGluck
09.11.2018, 14:51     Библиотеки mingw-w64
  #18
 Комментарий модератора 
Оффтоп почищен, тема закрыта.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.11.2018, 14:51

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Кросс-компиляция opengl в mingw-w64
Есть программа на SDL и OpenGL. В Makefile я прописываю все пути к либам. И всё собирается под...

Подключение библиотеки созданной в MinGW
Идея в следующем компилировать статическую библиотеку на MinGW с использованием C++11, и подключать...

Подключение библиотеки при компиляторе MinGW
Приветствую! Есть проблема - в Qt проекте необходимо использовать ф-ию PathFileExistsW, которая...

Ошибка при сборке библиотеки MinGW
Добрый день, уважаемые форумчани. Пытаюсь создать проект по этой инструкции....


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

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

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