Pregunta

Im tratando de construir el ejemplo Apache de la mod_helloworld.lpr, C: \ lazarus \ components \ fpweb \ demo \ holamundo \ Apache

Lázaro versión 0.9.29
FPC Verion 2.4.3 SVN 27129
i386-win32

después de agregar a la $(LazarusDir)\fpc\2.4.3\source\packages\fcl-web\src\ Otros archivos de unidad (-Fu) se compilará, pero cuando construyo / vincular consigo los errores

mod_helloworld.lpr(38,1) Error: Undefined symbol: WSRegisterCustomImageList
mod_helloworld.lpr(38,1) Error: Undefined symbol: WSRegisterMenuItem
mod_helloworld.lpr(38,1) Error: Undefined symbol: WSRegisterMenu
mod_helloworld.lpr(38,1) Error: Undefined symbol: WSRegisterMainMenu
mod_helloworld.lpr(38,1) Error: Undefined symbol: WSRegisterPopupMenu
mod_helloworld.lpr(38,1) Error: Undefined symbol: WSRegisterDragImageList
mod_helloworld.lpr(38,1) Error: Undefined symbol: WSRegisterControl
mod_helloworld.lpr(38,1) Error: Undefined symbol: WSRegisterWinControl
mod_helloworld.lpr(38,1) Error: Undefined symbol: WSRegisterGraphicControl
mod_helloworld.lpr(38,1) Error: Undefined symbol: WSRegisterCustomControl
mod_helloworld.lpr(38,1) Error: Undefined symbol: WSRegisterScrollingWinControl
mod_helloworld.lpr(38,1) Error: Undefined symbol: WSRegisterScrollBox
mod_helloworld.lpr(38,1) Error: Undefined symbol: WSRegisterCustomFrame
mod_helloworld.lpr(38,1) Error: Undefined symbol: WSRegisterCustomForm
mod_helloworld.lpr(38,1) Error: Undefined symbol: WSRegisterHintWindow
mod_helloworld.lpr(38,1) Fatal: There were 15 errors compiling module, stopping

im GÜSSING su tratando de añadir el LCL o algo, pero realmente no tengo ni idea.

¿Fue útil?

Solución

lo descubrió ... que piensan

después de añadir Interfaces a la causa usos, i puede obtener el mod_helloworld para compilar.

No sé de dónde salió eso, pero recuerdo lo hace para obtener una compilación CGI co.

pero el problema es ahora, instalar mi Apache no, excepto el .dll

LoadModule mod_helloworld "C: \ lazarus \ components \ fpweb \ demo \ holamundo \ apache \ mod_helloworld.dll"

httpd.exe: Error de sintaxis en la línea 63 de C: / Archivos de programa / Apache Foundatio n / Apache2.2 / conf / httpd.conf: No puede cargar C: / lazarus / componentes / fpweb / demo / hellow undo / Apache / mod_helloworld.dll en servidor: El módulo especificado no podía ser encontrado.

pero mal prob publicar esto como una nueva pregunta pronto

Otros consejos

He tenido el mismo problema exacto bajo Ubuntu 10.04 LTS AMD64.

Para consultar problemas para compilar un proyecto WebLaz en Lazarus.

Éste puede ser que también ayuda: Cómo puedo compilar un módulo de Lázaro Apache para Apache 1.3, 2.0 y 2.2 selectivamente

Me tomó la opción "Eliminar carpetas innecesarias" y obligando a fpc.cfg siempre a punto httpd22.

Sé que no es la mejor, así que voy a dar una explicación más detallada.

Vamos a suponer que FPSRC contiene la ruta de los archivos de origen FPC, FPCUNITS contiene las unidades de pre-compilados y FPCCFG contiene la ruta al archivo fpc.cfg.

Si usted tiene un vistazo a FPCCFG encontrará un bloque que decide qué versión de Apache:

#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

Según sugerido aquí puedes poner esas directivas en la parte superior de FPCCFG por lo que el compilador puede llegar a las carpetas adecuadas.

Para que se encarga de FPC, donde puede encontrar las fuentes si se necesita compilar ellos.

Ahora tenemos otro problema: Es no enlazar con el PPU derecho

.

Si usted tiene un vistazo a FPCUNITS podrás encontrar 3 carpetas:. Httpd13, httpd20 y httpd22

Ahora el compilador, en la búsqueda de la combinación de carpeta / unidad correcta, lo encontrará por primera vez bajo httpd13 o httpd20. Esto no es bueno si quieres un módulo de Apache 2.2 y va a fracasar en todo el enlace.

No tengo una solución "inteligente" para este dilema, uno que implica directivas condicionales, por lo que acaba de eliminar las 2 carpetas que no quiero (después de una copia de seguridad adecuado por si acaso necesito para compilar / link contra otras versiones de Apache). En mi caso httpd13 y httpd20.

También he tenido que añadir el "-fPIC" a mis opciones del compilador. Se sugirió en uno de los mensajes de error, ya sea del compilador o el enlazador, pero esta es la única cosa que realmente no sabemos si se trata de una cosa global o sólo mi configuración de 64 bits.

Espero que esto funcione bajo Windows sin embargo.

Editar : Estoy construyendo un proyecto de aplicación múltiple y va a utilizar fpmake.pp para compilar todo. Una vez que consiga todas las torceduras de la fpmake.pp también a publicar lo que se podría evitar algunos de estos problemas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top