Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache2 构建mod_helloworld.lpr_Apache2_Lazarus_Fpc_Apache Modules - Fatal编程技术网

Apache2 构建mod_helloworld.lpr

Apache2 构建mod_helloworld.lpr,apache2,lazarus,fpc,apache-modules,Apache2,Lazarus,Fpc,Apache Modules,我正在尝试构建mod_helloworld.lpr的apache示例,C:\lazarus\components\fpweb\demo\helloworld\apache 拉撒路0.9.29 FPC Verion 2.4.3 SVN 27129 i386-win32 将$(lazarudir)\fpc\2.4.3\source\packages\fcl web\src\添加到其他单位文件(-Fu)后,它将编译,但在生成/链接时,我会收到错误 mod_helloworld.lpr(38,1) Er

我正在尝试构建mod_helloworld.lpr的apache示例,C:\lazarus\components\fpweb\demo\helloworld\apache

拉撒路0.9.29
FPC Verion 2.4.3 SVN 27129
i386-win32

$(lazarudir)\fpc\2.4.3\source\packages\fcl web\src\
添加到其他单位文件(-Fu)后,它将编译,但在生成/链接时,我会收到错误

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

我在滔滔不绝地说,它试图添加lcl或其他东西,但我真的不知道。

在Ubuntu 10.04 LTS amd64下,我也遇到了同样的问题

看看

这一点也可能有帮助:

我选择了“删除不必要的文件夹”选项,并强制fpc.cfg始终指向httpd22

我知道这不是最好的,所以我会给出更详细的解释

假设FPSRC包含FPC源文件路径,FPCUNITS包含预编译单元,FPCCFG包含FPC.cfg文件的路径

如果您查看FPCCFG,您会发现一个决定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
根据建议,您可以将这些指令放在FPCCFG的顶部,以便编译器可以访问正确的文件夹

因此,如果FPC需要编译源代码,它可以在哪里找到源代码

现在我们有另一个问题:它没有链接到正确的ppu

如果您查看FPCUNITS,您会发现3个文件夹:httpd13、httpd20和httpd22

现在,编译器在查找正确的文件夹/单元组合时,将首先在httpd13或httpd20下找到它。如果您想要一个Apache2.2模块,并且会破坏所有链接,那么这是不好的

我没有一个解决这个难题的“智能”解决方案,一个涉及条件指令的解决方案,所以我只是删除了2个我不想要的文件夹(在进行了适当的备份之后,以防我需要编译/链接其他Apache版本)。在我的例子中,是httpd13和httpd20

我还必须将“-fPIC”添加到我的编译器选项中。这是在编译器或链接器的一条错误消息中建议的,但这是唯一一件我真的不知道它是全局设置还是我的64位设置

不过,我希望这在Windows下能起作用


编辑:我正在构建一个多应用程序项目,并将使用fpmake.pp编译所有内容。一旦我了解了fpmake.pp的所有问题,我也会发布它,这样可以避免一些问题。

在Ubuntu 10.04 LTS amd64下,我也遇到了同样的问题

看看

这一点也可能有帮助:

我选择了“删除不必要的文件夹”选项,并强制fpc.cfg始终指向httpd22

我知道这不是最好的,所以我会给出更详细的解释

假设FPSRC包含FPC源文件路径,FPCUNITS包含预编译单元,FPCCFG包含FPC.cfg文件的路径

如果您查看FPCCFG,您会发现一个决定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
根据建议,您可以将这些指令放在FPCCFG的顶部,以便编译器可以访问正确的文件夹

因此,如果FPC需要编译源代码,它可以在哪里找到源代码

现在我们有另一个问题:它没有链接到正确的ppu

如果您查看FPCUNITS,您会发现3个文件夹:httpd13、httpd20和httpd22

现在,编译器在查找正确的文件夹/单元组合时,将首先在httpd13或httpd20下找到它。如果您想要一个Apache2.2模块,并且会破坏所有链接,那么这是不好的

我没有一个解决这个难题的“智能”解决方案,一个涉及条件指令的解决方案,所以我只是删除了2个我不想要的文件夹(在进行了适当的备份之后,以防我需要编译/链接其他Apache版本)。在我的例子中,是httpd13和httpd20

我还必须将“-fPIC”添加到我的编译器选项中。这是在编译器或链接器的一条错误消息中建议的,但这是唯一一件我真的不知道它是全局设置还是我的64位设置

不过,我希望这在Windows下能起作用


编辑:我正在构建一个多应用程序项目,并将使用fpmake.pp编译所有内容。一旦我了解了fpmake.pp的所有问题,我也会发布它,这样就可以避免这些问题。

解决了。。。它认为

接口
添加到uses cause之后,我就可以编译mod_helloworld了

我不知道这是从哪里来的,但我记得这样做是为了得到一个CGI联合编译

但是现在的问题是,我的apache安装将不会删除.dll

LoadModule mod_helloworld“C:\lazarus\components\fpweb\demo\helloworld\apache\mod_helloworld.dll”

httpd.exe:的第63行出现语法错误 C:/Program Files/Apache软件 基金会n/Apache2.2/conf/httpd.conf: 无法加载 C:/lazarus/components/fpweb/demo/hellow orld/apache/mod_helloworld.dll到 服务器:无法找到指定的模块 找到了


但是我很快就会把这个问题作为一个新问题发布出来。。。它认为

接口
添加到uses cause之后,我就可以编译mod_helloworld了

我不知道这是从哪里来的,但我记得这样做是为了得到一个CGI联合编译

但是现在的问题是,我的apache安装将不会删除.dll

LoadModule mod_helloworld“C:\lazarus\components\fpweb\demo\helloworld\apache\mod_helloworld.dll”

httpd.exe:的第63行出现语法错误 C:/Program Files/Apache软件 基金会n/Apache2.2/conf/httpd.conf: 无法加载 C:/lazarus/components/fpweb/demo/hellow orld/apache/mod_helloworld.dll到 服务器:无法找到指定的模块 找到了


但是我很快会把这个问题作为一个新问题发布

谢谢你的回答,我已经将http13和http20文件夹重新命名为allready。我只是尝试了-fPIC编译器选项,没有任何更改。从我所看到的,fPiC选项看起来像一个gcc选项,谢谢你的回答,我有