spry
@spry

Тихо крыша едет неспеша: как подружить static library собраную в GCC и MSVC?

Итак, имеем статическую библиотеку, собраную в 4 вариантах (для каждого из компиляторов debug и release):

— i686-pc-cygwin-gcc (-mno-cygwin)

— gcc из пакета MinGW


debug@i686-pc-cygwin-gcc линкуется с хост-проектом в студии на ура, даже работает :)

release@i686-pc-cygwin-gcc не линкуется с хост-проектом в студии, ругается на __alloca (в мс-библиотеках есть такое, но это там называется _alloca).

debug@mingw-gcc не линкуется с хост-проектом в студии, ругается на __chkstk

release@mingw-gcc линкуется с хост-проектом в студии, но не работает (крешится).


Кто с этим разбирался, как правильно собрать? Судя по результатам, собрать можно, истина где-то рядом.
  • Вопрос задан
  • 2962 просмотра
Решения вопроса 1
z0rc
@z0rc
Не могу подсказать насчёт Cygwin, но при работе с MinGW следует брать GCC не ниже 4.5.1. Именно в нём в проекте mingw-w64 провели большую работу над совместимостью с MSVC. Более детально надо или курить их вики, или пинать разрабов на IRC канале проекта (второе обычно эффективнее).
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@agul
Чем отличается _alloca от _alloca?
Ответ написан
spry
@spry Автор вопроса
Не то чтобы сильно помогло, i686-w64-mingw32-gcc (4.5.1) с -O0 -g собрал библиотеку которая ссылается на
___chkstk (3 "_") и __stricmp (2 "_"). Сижу чешу затылок дальше
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы