Проблема компиляции проекта WebLaz под Lazarus - PullRequest
1 голос
/ 19 октября 2010

Мои характеристики:

  • ОС: Ubuntu 10.04 LTS amd64
  • fpc: 2.4.0
  • lazarus: 0.9.28

Я пытаюсь скомпилировать проект WebLaz, просто создав его, а затем скомпилировав.Каким-то образом компилятор теряется, когда определяет используемые httpd и fpapache модули.

Я обнаружил похожие проблемы на форумах:

После того, как я попробовал некоторые из предложенных там решений, я все ещена данный момент:

  1. Проект компилируется нормально, если у меня только httpd22 под скомпилированными блоками и Source для пакетов.Увы, после этого он полностью не может соединиться.

  2. С исходной структурой папок fpc / lazarus (при отсутствии всех HTTPD13, HTTPD20 и HTTPD22 в обоих местах, единицах и источнике) компилятор жалуется, чтоконтрольная сумма httpd изменилась, и не удалось найти источник fpapache.

    • Он находит httpd.pas под httpd20, но тогда он работает только с папками для 2.2

Я совершенно заблудился, как скомпилировать это с помощью компонента WebLaz, чего мне не хватает?

Ответы [ 2 ]

0 голосов
/ 20 октября 2010

Из того, что я мог исследовать из очень подробного вывода с использованием кнопки «Тест» на «Опции компилятора», для этих опций не определено ни одного:

  • FPCAPACHE_1_3
  • FPCAPACHE_2_0

Так что это означает, что в: /etc/fpc.cfg

#IFDEF FPCAPACHE_1_3
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/httpd13/
#ELSE
#IFDEF FPCAPACHE_2_0
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/httpd20/
#ELSE
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/httpd22/
#ENDIF
#ENDIF

По умолчанию тест вернется к httpd22.

Тем не менее, имея:

  1. / USR / Библиотека / FPC / 2.4.0 / единиц / x86_64-Linux / httpd20
  2. / USR / Библиотека / FPC / 2.4.0 / единиц / x86_64-Linux / httpd22

в пути компилятора к скомпилированным модулям это означает, что он сначала найдет httpd20.

Это означает, что он попытается загрузить версию 2.0, а не версию 2.2 скомпилированных модулей.

Итак, первое решение - удалить / переместить папку 1. из системы.

Это позволит вам скомпилировать, но, увы, он не будет связываться в 64-битной системе (я тестирую на системе AMD64, поэтому я не собираюсь предполагать, что она работает в другом месте).

Процесс заканчивается подсказкой, чтобы добавить -fPIC к опциям компилятора.

Если вы идете в Project-> Параметры компилятора ...-> Other в нижней части TextBox, вы можете добавить его.

Вуаля, это работает.

0 голосов
/ 20 октября 2010

Возможно, вам нужно выбрать нужную версию, а затем перестроить соответствующие части Lazarus, чтобы pkgs собирались с выбранным тогда Apache.

Afaik выбор демонов httpd просто меняет порядок, это не означает, что все версии поддерживаются одновременно, как, например, mysqlconnection.

...