С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

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

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

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

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

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

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

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

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

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

g++ -o blablabla.exe somefile.cpp somefile2.cpp -static -static-libgcc -static-libstdc++
1
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++
Ничего лишнего? И если можно, разъясните пожалуйста по каждому параметру в этой строке.
0
Croessmah
Ушел
Эксперт CЭксперт С++
13558 / 7708 / 872
Регистрация: 27.09.2012
Сообщений: 18,996
Записей в блоге: 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++
2
castaway
Эксперт С++
4916 / 3024 / 370
Регистрация: 10.11.2010
Сообщений: 11,081
Записей в блоге: 10
Завершенные тесты: 1
26.07.2015, 08:56 #7
Достаточно одного флага -static.
0
ambrosia
0 / 0 / 0
Регистрация: 04.07.2015
Сообщений: 14
26.07.2015, 09:00  [ТС] #8
Croessmah, а не подскажете, в какой литературе можно подробнее узнать о линковке?
0
Croessmah
Ушел
Эксперт CЭксперт С++
13558 / 7708 / 872
Регистрация: 27.09.2012
Сообщений: 18,996
Записей в блоге: 3
Завершенные тесты: 1
26.07.2015, 15:39 #9
Цитата Сообщение от ambrosia Посмотреть сообщение
а не подскажете, в какой литературе можно подробнее узнать о линковке?
C++. Сборник рецептов. ;-) знакомо, да?
GCC - полное руководство (там вообще всё есть)
0
ct0r
Игогошка!
1777 / 679 / 42
Регистрация: 19.08.2012
Сообщений: 1,295
Завершенные тесты: 1
26.07.2015, 16:17 #10
Цитата Сообщение от ambrosia Посмотреть сообщение
а не подскажете, в какой литературе можно подробнее узнать о линковке?
http://www.amazon.com/Advanced-C-Com.../dp/1430266678
Как обычно, бесплатную версию можно найти в интернете.
0
26.07.2015, 16:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.07.2015, 16:17
Привет! Вот еще темы с ответами:

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

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

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

Про линковку и про исключения - C++
1) class method definition - если его поместить в объявлении класса в файле заголовке и включить заголовок в несколько компилируемых cpp, а...


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

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

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