Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ambrosia
0 / 0 / 0
Регистрация: 04.07.2015
Сообщений: 14
#1

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

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

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

p.S> gcc 5.0.1 (minGW-w64)
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.07.2015, 23:18     Как выполнить статическую линковку библиотек?
Посмотрите здесь:

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

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

Как поместить в шаблон статическую переменную? - C++
мучаюсь вторые стуки, не где не могу найти решения проблемы, смысл в следующим, сделал каласс образно говоря контейнер, в нем прописал...

Как создать статическую библиотеку с расширением .lib в MinGw? - C++
Зачем это надо? - хочу скомпилировать библиотеку в MinGw и подключить к с++builder. Возможно ли это? а может, если я по-варварски возьму...

Как указать директорию для динамических библиотек - C++
Проблема в том, что заюзав кучу динамических библиотек, 20 файлов лежат у меня в директории выходной программы. Хотелось бы их в папочку...

Создать статическую библиотеку к программе - C++
У меня есть программа и к ней надо создать статическую библиотеку. Не совсем понимаю, как это воплотить.

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
13052 / 7315 / 814
Регистрация: 27.09.2012
Сообщений: 18,052
Записей в блоге: 3
Завершенные тесты: 1
25.07.2015, 23:22     Как выполнить статическую линковку библиотек? #2
Как получить готовый .exe файл, чтобы запускать его без IDE
ambrosia
0 / 0 / 0
Регистрация: 04.07.2015
Сообщений: 14
25.07.2015, 23:29  [ТС]     Как выполнить статическую линковку библиотек? #3
Croessmah, я совсем новичок, да и не IDE у меня, простой компиль.
Croessmah
Модератор
Эксперт CЭксперт С++
13052 / 7315 / 814
Регистрация: 27.09.2012
Сообщений: 18,052
Записей в блоге: 3
Завершенные тесты: 1
25.07.2015, 23:35     Как выполнить статическую линковку библиотек? #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от ambrosia Посмотреть сообщение
я совсем новичок, да и не IDE у меня, простой компиль.
Из консоли компилируете?

g++ -o blablabla.exe somefile.cpp somefile2.cpp -static -static-libgcc -static-libstdc++
ambrosia
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++
Ничего лишнего? И если можно, разъясните пожалуйста по каждому параметру в этой строке.
Croessmah
Модератор
Эксперт CЭксперт С++
13052 / 7315 / 814
Регистрация: 27.09.2012
Сообщений: 18,052
Записей в блоге: 3
Завершенные тесты: 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++
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
26.07.2015, 08:56     Как выполнить статическую линковку библиотек? #7
Достаточно одного флага -static.
ambrosia
0 / 0 / 0
Регистрация: 04.07.2015
Сообщений: 14
26.07.2015, 09:00  [ТС]     Как выполнить статическую линковку библиотек? #8
Croessmah, а не подскажете, в какой литературе можно подробнее узнать о линковке?
Croessmah
Модератор
Эксперт CЭксперт С++
13052 / 7315 / 814
Регистрация: 27.09.2012
Сообщений: 18,052
Записей в блоге: 3
Завершенные тесты: 1
26.07.2015, 15:39     Как выполнить статическую линковку библиотек? #9
Цитата Сообщение от ambrosia Посмотреть сообщение
а не подскажете, в какой литературе можно подробнее узнать о линковке?
C++. Сборник рецептов. ;-) знакомо, да?
GCC - полное руководство (там вообще всё есть)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.07.2015, 16:17     Как выполнить статическую линковку библиотек?
Еще ссылки по теме:

Функция содержащая статическую переменную - C++
Начал разбираться с статическими ф-циями, и прикидывал простые примеры. Но дошел до того, что никак не могу понять как там получается: ...

Как узнать частоту звука без сторонних библиотек - C++
кто нибудь знает как в работать со звуком без сторонних библиотек? мне нужно чтобы во время проигрывания звука можно было узнать его...

Научите собирать статическую библиотеку из исходников - C++
Собственно, не могу я этого... В "наборе" есть файлы .h, .m, .in, .c, а также CMakeLists.txt Как из всего этого добра получить lib'у? ...

Указать параметром шаблона статическую матрицу - C++
int matrix; List<int**> list; list << matrix; no match <int**> and <int(*)> Как правильно указать параметр шаблона...


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

Или воспользуйтесь поиском по форуму:
ct0r
Игогошка!
1768 / 670 / 42
Регистрация: 19.08.2012
Сообщений: 1,284
Завершенные тесты: 1
26.07.2015, 16:17     Как выполнить статическую линковку библиотек? #10
Цитата Сообщение от ambrosia Посмотреть сообщение
а не подскажете, в какой литературе можно подробнее узнать о линковке?
http://www.amazon.com/Advanced-C-Com.../dp/1430266678
Как обычно, бесплатную версию можно найти в интернете.
Yandex
Объявления
26.07.2015, 16:17     Как выполнить статическую линковку библиотек?
Ответ Создать тему
Опции темы

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