Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/29: Рейтинг темы: голосов - 29, средняя оценка - 4.69
0 / 0 / 0
Регистрация: 04.07.2015
Сообщений: 14
1

Как выполнить статическую линковку библиотек?

25.07.2015, 23:18. Показов 5899. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Такая ситуация: скомпилировал на ноуте консольное приложение, на уровне хеллоу ворлда, а на персональном компе оно при запуске выдает системную ошибку (отсутствие файла libgcc_s_dw2-1.dll), в свою очередь скомпилированное на персональнике выдает ошибку на ноуте (отсутствие файла libgcc_s_seh-1.dll). Как мне произвести статическую линковку библиотек, чтобы я мог без проблем запускать прогу в других системах?

p.S> gcc 5.0.1 (minGW-w64)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.07.2015, 23:18
Ответы с готовыми решениями:

Не получается сделать статическую линковку своей программы в MinGW
Написал на с++ программу, скомпилировал и решил дать другу потестить. Хотел слинковать статически...

Про линковку библиотек и про архитектуру иерархии классов
Добрый день! Возникла такая вот проблема. Я использую MinGW Developer Studio. Это довольно старая...

Как выполнить статическую линковку в cmake?
Всем привет. Пробую собрать проект с помощью cmake (3.0) на ubuntu. Мне надо, чтобы зависимости...

Как собрать статическую линковку ILMerge?
C# Скинте как собрать статистическую линковку ILMerge смотрел видео...

9
Неэпический
17871 / 10636 / 2054
Регистрация: 27.09.2012
Сообщений: 26,738
Записей в блоге: 1
25.07.2015, 23:22 2
Как получить готовый .exe файл, чтобы запускать его без IDE
0
0 / 0 / 0
Регистрация: 04.07.2015
Сообщений: 14
25.07.2015, 23:29  [ТС] 3
Croessmah, я совсем новичок, да и не IDE у меня, простой компиль.
0
Неэпический
17871 / 10636 / 2054
Регистрация: 27.09.2012
Сообщений: 26,738
Записей в блоге: 1
25.07.2015, 23:35 4
Лучший ответ Сообщение было отмечено ambrosia как решение

Решение

Цитата Сообщение от ambrosia Посмотреть сообщение
я совсем новичок, да и не IDE у меня, простой компиль.
Из консоли компилируете?

g++ -o blablabla.exe somefile.cpp somefile2.cpp -static -static-libgcc -static-libstdc++
1
0 / 0 / 0
Регистрация: 04.07.2015
Сообщений: 14
25.07.2015, 23:45  [ТС] 5
Croessmah, да, из консоли. Файл скомпилировался, в другой системе запускается и выполняется успешно, без ошибок.

Получилась такая вот строка g++ -std=c++11 -o final.exe 866OEM.cpp -static -static-libgcc -static-libstdc++
Ничего лишнего? И если можно, разъясните пожалуйста по каждому параметру в этой строке.
0
Неэпический
17871 / 10636 / 2054
Регистрация: 27.09.2012
Сообщений: 26,738
Записей в блоге: 1
26.07.2015, 00:07 6
Цитата Сообщение от ambrosia Посмотреть сообщение
-std=c++11
Использовать стандарт c++11
Цитата Сообщение от ambrosia Посмотреть сообщение
-o final.exe
-o - output. На выходе получим файл final.exe
Цитата Сообщение от ambrosia Посмотреть сообщение
866OEM.cpp
собственно файлы с исходниками
Цитата Сообщение от ambrosia Посмотреть сообщение
-static -static-libgcc -static-libstdc++
-static - компоновщик будет игнорировать любые разделяемые библиотеки и разрешать все внешние ссылки непосредственным включением в вырабатываемый объектный код статических объектных файлов.
-static-libgcc - назначает использование статической версии библиотеки libgcc. Применение этой опции может создать проблемы с обработкой исключений при компиляции программ на языке c++
-static-libstdc++ - тоже самое, только для libstdc++
2
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
26.07.2015, 08:56 7
Достаточно одного флага -static.
0
0 / 0 / 0
Регистрация: 04.07.2015
Сообщений: 14
26.07.2015, 09:00  [ТС] 8
Croessmah, а не подскажете, в какой литературе можно подробнее узнать о линковке?
0
Неэпический
17871 / 10636 / 2054
Регистрация: 27.09.2012
Сообщений: 26,738
Записей в блоге: 1
26.07.2015, 15:39 9
Цитата Сообщение от ambrosia Посмотреть сообщение
а не подскажете, в какой литературе можно подробнее узнать о линковке?
C++. Сборник рецептов. ;-) знакомо, да?
GCC - полное руководство (там вообще всё есть)
0
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
26.07.2015, 16:17 10
Цитата Сообщение от ambrosia Посмотреть сообщение
а не подскажете, в какой литературе можно подробнее узнать о линковке?
http://www.amazon.com/Advanced... 1430266678
Как обычно, бесплатную версию можно найти в интернете.
0
26.07.2015, 16:17
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.07.2015, 16:17
Помогаю со студенческими работами здесь

Настроить Builder на статическую линковку
У меня Builder 2007, если попытаться открыть exe файл на другом пк то жалуется на отсутствие...

хочу хитрую линковку сделать, как сдалать
noindex - гуглу пофиг вот и встал вопрос , а как тогда ? Спасибо!

Как OpenSSL добавить в линковку CLion (используется cmake и mingw)
Приветствую, друзья. Как добавить OpenSSL в линковку проекта? Я видел FingOpenSSL (cmake), но...

Как настроить статическую маршрутизацию?
Не понимаю, что не так. В чем проблема?


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru