|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
28.03.2017, 22:22 | #1 |
Регистрация: 23.03.2017
Сообщений: 3
|
Почему не полная статическая линковка?
Хочу на Qt (который скомпилирован только со статическими библиотеками под Windows на MingW)
сделать чисто статическую библиотеку. В этой библиотеке используются другие статические библиотеки. (Например: png, gif и т.д.). Компилирую код библиотеки из QtCreator. Вот что он делает - создает .obj файлы для каждого .cpp и потом просто вызывает утилиту ar.exe, которая заворачивает все в архив, содержащий все скомпилированные объектники. Ссылки на внешние функции не разрешены. Хотя я через ключи -L и -l указываю библиотеки, откуда нужно взять реализации этих функций. Никаких сообщений об unresolved external нет, хоть я могу указывать -L и -l, хоть вообще ничего не указываю. Вопрос - как реально вызвать линкер ld, чтобы он разрешил внешние ссылки. Может быть, понятно, что MinGW это не хочет делать, так как ему придется разрешать ссылки и на системные библиотеки Windows. Но это возможно и нужно, чтобы создать самодостаточную программу. P.S. На этом "статическом" Qt 5.7 нормально компилируются примеры (examples), dll-ы. В этих случаях в make-файле есть строка, вызывающая g++ в качестве линкера ранее полученных объектников. Это и понятно - он сваливает все объектники в PE-формат с соответствующими заголовками, экспортами и т.д. (Но зависимости от системных Windows-dll остаются, так как линкует с их импортными библиотеками). Но как бы заставить QtCreator влинковывать определения функций из других библиотек в объектники, которые потом ar.exe сваливает в архивы с расширением "*.a"(т.е. библиотеки) ? Ведь MS линкеры вроде это могут. Можно было бы вручную написать make-файлы, но это очень неудобно при работе с QtCreator (все время будут перезаписываться). Последний раз редактировалось oaoao; 29.03.2017 в 15:07. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Статическая линковка OpenAL | andreil | Общие вопросы C/C++ | 8 | 30.12.2016 16:28 |
Статическая линковка SFML | Ponch_Begginer | Общие вопросы C/C++ | 8 | 18.11.2015 00:06 |
qt4, win32 и статическая линковка. | ASGAlex | Qt и кроссплатформенное программирование С/С++ | 3 | 09.06.2009 09:13 |
Линковка... | GHOST_Kasper | Работа с сетью в Delphi | 13 | 21.11.2007 16:06 |