|
120 / 4 / 1
Регистрация: 15.06.2016
Сообщений: 236
|
|
Компиляция *.cpp компилятором gcc30.12.2018, 01:23. Показов 4802. Ответов 31
Метки нет (Все метки)
Недавно столкнулся с проблемой отсутствия библиотеки libgcc_s_dw2-1.dll (виртуалка с чистой виндой). Начал копаться и обнаружил, что , эта проблема свойственна только x86 компилятору(я использую mingw-w64). Файл, скомпилированный при помощи x64 компилятора(тож mingw-w64) запускается на ура. Что еще более странно, это,что если скомпилировать исходники компилятором gcc x86, а не g++ x86(пишу на плюсах), то ошибка пропадает. Пишу, чтобы вы помогли разобраться в этих аномалиях.Не люблю, когда что-то недопонимаю
0
|
|
| 30.12.2018, 01:23 | |
|
Ответы с готовыми решениями:
31
После установки Dev-Cpp 5.11 TDM-GCC 4.9.2 Setup.exe дает ошибку Exception elinifileexpectation in module devcpp․exe Компиляция проекта в gcc Непонятные проблемы с компилятором gcc |
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
||
| 08.01.2019, 02:48 | ||
|
Добавлено через 52 секунды Ну что, вы сделали какие-либо выводы из того, что вам написали?
1
|
||
|
120 / 4 / 1
Регистрация: 15.06.2016
Сообщений: 236
|
|
| 09.01.2019, 00:35 [ТС] | |
|
Ну это понятно, на основной вопрос ответа я все же не нашел: почему нет ошибки отсутствия либы при запуске программы, скомпилированный через gcc. Если скомпилировать тот же код используя g++, ошибка появляется, да и размер файла увеличивается. Посмотрите в архиве выше, попробуйте запустить каждый файл на чистой системе, вы сами поймёте
Добавлено через 2 минуты Реальной проблемы как таковой нету, я могу и собирать свои проекты используя gcc, просто хочется понять что к чему, почему так происходит.., ну вы поняли
0
|
|
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
||
| 09.01.2019, 11:35 | ||
|
Краткий ответ такой: "потому что gcc не запускает линкер с указанием библиотеки c++-runtime.". G++ предназначен для сборки С++ и делает некоторую дополнительную работу по умолчанию, характерную для С++. Предполагается, что типичная программа на С++ таки зависит от С++ Runtime и поэтому линковщику дается указание подключить ее по умолчанию. GCC таких предположений не делает, т.к. это централизованный механизм, который может запускать сборку на любом языке из доступных в Compiler Collection. Если бы вы использовали код, который зависит от с++ runtime, наподобие того, что предложили вам выше, то вы увидели бы ошибку линкера при попытке собрать код через gcc. Если вы ее не увидели, то ваш код на самом деле не требует зависимости от libstdc++, и сборка его через gcc, а не g++ ни к чему плохому не приводит, а похоже наоборот, даже улучшает состояние дел
1
|
||
|
120 / 4 / 1
Регистрация: 15.06.2016
Сообщений: 236
|
||
| 09.01.2019, 16:42 [ТС] | ||
|
Добавлено через 4 минуты И почему файлы, скомпилированные g++(x64), в отличие от g++(x86) запускаются без ошибок?
0
|
||
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
|||||
| 09.01.2019, 18:37 | |||||
|
Вы же должны понимать, что отсюда совсем не понятно что и как вы запускаете. Приведите логи, подробные, я вам все там объясню. Добавлено через 4 минуты Да, и код, который вы дали в #14 совершенно справедливо не нуждается в libstdc++, т.к. использует только вызовы из С runtime. Добавлено через 4 минуты Увеличение размера исполняемого файла при увеличении кол-ва зависимостей - это вполне закономерное явление. Т.к. список зависимостей хранится в специальных таблицах внутри исполняемого файла. Также флаги линковщика могут быть различными (опять же смотрите результат работы с опцией -v), что побуждает его генерировать какой-то дополнительный код. Добавлено через 7 минут GreyCat, я посмотрел ваш архив выше, и похоже что версия которую вы назвали gcc(x64)_with_-lstdc++.exe совсем не тащит libstdc++. Т.е. так, как будто ее и не указывали вовсе. По всей видимости умный линковщик просто проигнорировал ваше пожелание линковать бесполезную библиотеку. Вот и ответ, похоже.
1
|
|||||
|
120 / 4 / 1
Регистрация: 15.06.2016
Сообщений: 236
|
|||||||||||||
| 09.01.2019, 21:20 [ТС] | |||||||||||||
|
Лог компиляции gcc(x86):
0
|
|||||||||||||
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
|||
| 09.01.2019, 21:36 | |||
-lstdc++ -lmingw32 -lgcc_s -lgcc -lmoldname -lmingwex -lmsvcrt -lpthread -ladvapi32 -lshell32 -luser32 -lkernel32 -liconv -lmingw32 -lgcc_s -lgcc -lmoldname -lmingwex -lmsvcrtТут есть и stdc++ и gcc_s
1
|
|||
|
120 / 4 / 1
Регистрация: 15.06.2016
Сообщений: 236
|
||||||||||||
| 09.01.2019, 21:54 [ТС] | ||||||||||||
|
оу, щит, прошу извинить и принять новый вариант
Лог g++(x86):
А есть опция отключения этого -lstdc++? Или проще компилировать, используя gcc?
0
|
||||||||||||
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
|||
| 09.01.2019, 23:06 | |||
-nostdlib: https://gcc.gnu.org/onlinedocs... tions.htmlДобавлено через 3 минуты X64 окружение похоже чуть поумнее, и игнорирует ненужную зависимость при линковке.
1
|
|||
|
120 / 4 / 1
Регистрация: 15.06.2016
Сообщений: 236
|
|||||||||||
| 10.01.2019, 00:02 [ТС] | |||||||||||
|
Компилирую так:
0
|
|||||||||||
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
||
| 10.01.2019, 00:13 | ||
|
Но похоже для mingw -nostdlib более фатально, т.к. отключает всю обвязку, которой довольно много. Наверное все-таки лучше вам не пользоваться ей в mingw
1
|
||
|
120 / 4 / 1
Регистрация: 15.06.2016
Сообщений: 236
|
||||||
| 10.01.2019, 00:17 [ТС] | ||||||
![]() gcc и все) Главное я понял что к чему) Спасибо всем участникам)
0
|
||||||
| 10.01.2019, 00:17 | |
|
Учим code::blocks компилировать gcc компилятором как скомпилировать исходник на Python компилятором gcc? Как записать компиляцию файла С в cgi компилятором gcc? Можно ли компилятором gcc создать COM объекты, сервер, в частности? Как осуществляется компиляция и компоновка программы со строковым компилятором? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров
В текущей версии модели успешно реализован ключевой механизм. . .
|
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям
Реализованные компоненты:
Механизм закисления почвы через протонную помпу
Конкуренция между типами микориз
pH как триггер сукцессии
C/ P соотношение. . .
|
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
|
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
|
|
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы
## О чём эта статья
В процессе построения ОДУ-модели (система дифференциальных. . .
|
сукцессия 24. Промежуточное общее описание модели
anaschu 12.07.2026
Хендофф: модель АМ→ЭКМ сукцессии микоризы (ризосфера, 50 лет)
Содержание проекта
Симуляция вековой (50 лет) экологической сукцессии в почве леса
Основные участники: АМ-гриб, ЭКМ-гриб,. . .
|
сукцессия 23. Более физиологичная физиология, более экологичная экология, более диффурные диффуры.
anaschu 12.07.2026
Что реально нашли и починили за эти 5 часов
Правило Линдемана (КПД конверсии сахара в тело, kEff) — раньше 100% полученного углерода шло прямо в биомассу гриба; теперь только kEff=0. 5 (после. . .
|
сукцессия 22. От артефактов к физиологии: калибровка агентной модели грибной сукцессии для воспроизведения сезонной динамики и pH-плато
anaschu 11.07.2026
Аннотация
В данной работе представлена калибровка агентной модели динамики грибных сообществ (fungal-succession), направленная на устранение нефизичных артефактов (коллапс биомассы, мгновенное. . .
|