|
120 / 4 / 1
Регистрация: 15.06.2016
Сообщений: 236
|
|
Компиляция *.cpp компилятором gcc30.12.2018, 01:23. Показов 4671. Ответов 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 |
|
120 / 4 / 1
Регистрация: 15.06.2016
Сообщений: 236
|
|
| 04.01.2019, 00:17 [ТС] | |
|
Что же все-таки произойдет , если скомпилировать c++ исходники компилятором gcc?
0
|
|
|
415 / 150 / 48
Регистрация: 02.06.2016
Сообщений: 364
|
|||
| 04.01.2019, 08:28 | |||
|
1
|
|||
|
120 / 4 / 1
Регистрация: 15.06.2016
Сообщений: 236
|
|||
| 04.01.2019, 22:04 [ТС] | |||
|
Добавлено через 7 часов 59 минут Все это свойственно пустому проекту. В реальном проекте опция -static увеличивает размер файла в несколько раз.Опять же, если скомпилировать c++ исходники компилятором gcc(x86), получим файл маленького размера и при том все запускается без ошибок. Почему так происходит?
0
|
|||
|
415 / 150 / 48
Регистрация: 02.06.2016
Сообщений: 364
|
|
| 05.01.2019, 02:26 | |
|
Не компилирует у меня gcc простейший cpp код. На разных версиях пробовал.
1
|
|
|
120 / 4 / 1
Регистрация: 15.06.2016
Сообщений: 236
|
|
| 05.01.2019, 16:44 [ТС] | |
|
у меня компилятор mingw-w64.Все компилирует)
0
|
|
|
120 / 4 / 1
Регистрация: 15.06.2016
Сообщений: 236
|
|
| 06.01.2019, 12:03 [ТС] | |
|
Странно..
0
|
|
|
120 / 4 / 1
Регистрация: 15.06.2016
Сообщений: 236
|
|
| 06.01.2019, 15:10 [ТС] | |
|
Не, это не то. Пробовал опцию -lstdc++, ничего не поменялось, даже размер исполняемого файла не изменился.
Вы мне скажите: почему размеры файлов , скомпилированных с помощью gcc и g++ разнятся. Как я понял разница в обоих случаях лишь в линковке. Или что еще?
0
|
|
|
415 / 150 / 48
Регистрация: 02.06.2016
Сообщений: 364
|
|
| 07.01.2019, 20:08 | |
|
1
|
|
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
||||||||||||||
| 07.01.2019, 21:07 | ||||||||||||||
|
Добавлено через 10 минут Посмотреть какие конкретно программы вызывает gcc именно в вашем случае можно добавив при компиляции ключ -v (verbose).Добавлено через 3 минуты У меня, например, вот так:
Вот тоже самое, но для файла cpp (вызывается cc1plus.exe):
Да, все-таки в обычном MinGW нет отдельного сс. Но в корне это ничего не меняет, принцип остается тем же. Что MinGW-шный GCC, что UNIX-совый CC при передаче им файла *.c вызывают непосредственно компилятор cc1 (или cc1.exe для MinGW).Для MinGW w64 он должен лежать по пути похожему на вот такой: <каталог mingw>\libexec\gcc\x86_64-w64-mingw32\<версия>\.
2
|
||||||||||||||
|
120 / 4 / 1
Регистрация: 15.06.2016
Сообщений: 236
|
|||||||
| 07.01.2019, 21:24 [ТС] | |||||||
0
|
|||||||
|
120 / 4 / 1
Регистрация: 15.06.2016
Сообщений: 236
|
||
| 07.01.2019, 21:40 [ТС] | ||
|
Лично у меня запускается все, кроме g++(x86),где, собственно появляется ошибка отсутствия библиотеки libgcc_s_dw2-1.dll
Добавлено через 12 минут
0
|
||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
|
| 07.01.2019, 21:43 | |
|
1
|
|
|
120 / 4 / 1
Регистрация: 15.06.2016
Сообщений: 236
|
||
| 07.01.2019, 22:43 [ТС] | ||
|
есть. Лежит тут C:\Program Files (x86)\mingw-w64\i686-8.1.0-posix-dwarf-rt_v6-rev0\mingw32\i686-w64-mingw32\lib
А если появится нужда запустить программу на другой системе, на которой нет mingw и следовательно этой либы? Тащить ее с собой тоже не разумно, потому что есть другой вариант: скомпилировать этот же код с помощью gcc. Не знаю что там происходит, но проблема исчезает, да и к тому же размер исполняемого файла уменьшается примерно на 1 кб. Очень странно.Это я и пытаюсь разобрать подробно. Почему так происходит. Добавлено через 4 минуты
0
|
||
|
415 / 150 / 48
Регистрация: 02.06.2016
Сообщений: 364
|
|||||||
| 07.01.2019, 23:06 | |||||||
|
Напишите так и все станет на свои места:
1
|
|||||||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
|||
| 07.01.2019, 23:11 | |||
|
libgcc_s очевидно идет зависимостью к libstdc++ (ключ линковки, который вы указывали -lstdc++, подключает именно ее), которую подключает по умолчанию g++. Если ваш код на самом деле не требует libstdс++, то получается, что убрав ее из зависимостей, вы избавились и от libgcc_s. Целиком и полностью все зависит от того кода, который вы компилируете.
1
|
|||
|
120 / 4 / 1
Регистрация: 15.06.2016
Сообщений: 236
|
||||||
| 08.01.2019, 00:24 [ТС] | ||||||
![]() Добавлено через 5 минут с флагом -lstdc++ ошибок нет
0
|
||||||
| 08.01.2019, 00:24 | |
|
Помогаю со студенческими работами здесь
20
Учим code::blocks компилировать gcc компилятором как скомпилировать исходник на Python компилятором gcc? Как записать компиляцию файла С в cgi компилятором gcc? Можно ли компилятором gcc создать COM объекты, сервер, в частности? Как осуществляется компиляция и компоновка программы со строковым компилятором? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|