Apache isn't the fastest or maximally customizable web server, its popularity comes from the fact that it provides a very good balance of these things bundled with maximum portability and reliability.
Вы не зашли.
Кто-нибудь пробовал собирать модули для Apache2 под Win32 с помощью MinGW? Это возможно? Был бы рад примеру make-файла и def'у.
Неактивен
Был опыт сборки модуля на связке MinGW+Eclipse(CDT). Сборка производилась аналогично стандартной процедуре в gcc. Вот пример:
mingw32-gcc -L"\mod_simple\lib" -shared -o libmod_simple.so mod_simple.o -l"apr" -l"aprutil" -l"httpd" -l"expat"
- тут проблем не было. Однако никак не удавалось слинковать модуль с библиотеками - все время вылизали
"undefined reference to ".
Недельные танцы с бубном+dlltool+pexports+прочим шаманским инструментарием не привели к желаемым результатам.
Пришлось использовать связку функций: LoadLibrary и GetProcAddress. С ее помощью все заработало.
С текущей версией пакета MinGW этой проблемы возможно уже не будет.
Неактивен
ApDev написал:
С текущей версией пакета MinGW этой проблемы возможно уже не будет.
С какой текущей?
Неактивен
ApDev написал:
Я использовал mingw32-gcc версии 3.4.2 Сейчас не знаю какая текущая.
3.4.2 и есть текущая
Неактивен
Дык, пробовал я. Неделю камлал. Много бубнов извёл бестолку.
Неактивен
ApDev написал:
TheDeadOne написал:
Дык, пробовал я. Неделю камлал. Много бубнов извёл бестолку.
Такие же радости лезли?
Угу
Неактивен
Как вариант, попробуй использовать функции LoadLibrary и GetProcAddress. Во время загрузки модуля, подгружай нужные библиотеки и получай адреса нужных функций из них, а после, при вызове функций, уже используй эти адреса.
Не смотрел в сторону Cygwin?
Неактивен
Мухоморил с mod_perl-2.0.3, нашаманил до одной неопределённой ссылки - но какой ( WinMain@16), только dllwrap собрала mod_perl.so. Но, увы, похоже он не рабочий - Апач не запускается с такой сборкой модуля. Похоже MSVC dll-библиотеки можно использовать только в MinGW exe-никах, а не в dll-ках.
Неактивен
У меня все ссылки определялись, только вот все равно нефига не вызывалось. Пришлось затыкать все GetProcAddress-ом.
Но все равно осталось впечатление, что можно все это дело прикрутить, но времени и сил уже не было
Неактивен
Было трудно... Но есть маленький положительный результат. Пример модуля из исходников Апача для Вынь удачно собран с шаманскими библиотеками (очередной попытки) - все ссылки правильно разрешены на нужные dll. Но примерчик-то тоже не без слона, и в итоге после его исправления Апач поднимает этот модуль без проблем, а вот до вызовов пока не дошло. Попробую вернуться к сборке mod_perl-2.0.3 и его тестами всё проверить.
Неактивен
Вот и лебединая песня: mod_perl.so собрался без проблем, но после подключения к Апачу, LoadLibrary, которая поднимает его модули в виндовозной версии, даёт ошибку "Invalid access to memory location" (по некоторым данным она якобы связана с неверным базовым адресом dll - уже какая-то библиотека его использует). После добавления ключа "--enable-auto-image-base" линкеру и сборки модуля, Апач тихо умирает, а DrWatson делает поминальный дамп.
Итак, сдаётся мне, что модули надо собирать имея всё дерево исходников всего сервера, чтобы базовые адреса модулей не пересекались (а может и ещё какая-то шляпа). И пока парни из Apache Group не сделают сборку всего сервака для gcc под Windows все попытки прикрутить по-левому собранные модули будут напрасны. Хотя я может и не прав, не будучи экспертом в программировани плагинов Апача.
Неактивен