Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Совместимость Mingw32 по библиотекам с MSVC

11 views
Skip to first unread message

Victor Wagner

unread,
Feb 12, 2008, 12:56:51 PM2/12/08
to

Как-то я до сих пор был уверен, что формат библиотек (статических) у
GCC и Microsoft C одинаковый. Во всяком случае, когда мне нужно было
Mingw32 собрать модуль для ActiveTcl я ничтоже сумняшеся брал
tcl84.lib (для микрософтовского компилятора) оттуда, копировал его
как libtcl84.a и все прекрасно линковалось. (правда, эта библиотека
была собрана Visual C 6.0)

Сегодня выяснил что в обратную сторону может и не работать - при попытке
собрать Apache для Win32 с OpenSSL, собранной mingw32 (а апачевцы
почему-то предлагают только вариант сборки MSVC) микрософтовский
компилятор стал ругаться что-де в каких-то объектниках соответствующей
импортной библиотеки имеются две секции .text с разными атрибутами.
Использовалась MSVC 7.1 AKA Visual Studio.NET 2003.

При этом, что характерно, ни gcc-шный objdump, ни микрософтовский
dumpbin этой второй секции .text в указанном объектнике не видят.
Получившаяся DLL в итоге ни от каких других DLL, включая user32 и
msvcr71 не зависела и работать не хотела, роняя апач без малейшей
диагностики.

Проблему, конечно, удалось преодолеть, взяв .def-файлы, использовавшиеся
при сборке OpenSSL-евских dll и сгенерив из них новые импортные
библиотеки с помощью микрософтовского lib.exe

Hо интересно, наступали ли другие люди на аналогичные грабли, и нет ли
способа породить работоспособную в MS Visual Studio импортную
библиотеку, не таща def-файл на винду.

--
Tagline supply exhausted.

0 new messages