2014-12-30 25 views
1

在过去的几天里,我一直在修补Windows上的mod_pLua(https://sourceforge.net/projects/modplua/https://github.com/Humbedooh/mod_pLua)。在VS2010中编译特定的apache模块

预构建的Windows二进制文件可以工作,除非它似乎没有编译mod_dbd支持数据库连接。文档建议要启用此功能,您必须使用特定标记进行编译,所以我一直试图在VS2010中编译模块 - 希望我能够在某些时候获得mod_dbd支持 - 但我已经运行陷入困境。它只是不会编译。

什么我迄今所做的:

  • 包括阿帕奇/包括和Apache/lib目录,这摆脱了很多 错误
  • 包括lauxlib.h,lua.h,luaconf的。 H和lualib.h从Lua 5.2,它摆脱了许多错误的
  • 从Lua 5.2源编译一个的.lib文件,包括它,它修正了一些错误

的错误,我越来越现在是:

错误LNK2019:在功能_lua_dbopenÇ引用解析外部符号_luaL_openlib:\用户\迈克尔\桌面\项目\ C \ mod_plua \ mod_plua.obj

而且这样的过多:

智能感知:\用户\迈克尔:类型 “常量字符)(cmd_parms * CMD,无效* CFG,常量字符* ARG)” 不能被用于初始化类型的实体 “cmd_func” C的值\ desktop \ projects \ c \ mod_plua \ mod_plua.h 394 5

因为我不是C/C++本地人,所以我只是对什么是错误有模糊的概念,并且在尝试解决问题时可能会出现错误。如果有人能够指引我朝着正确的方向发展(或者更好的是,写一点关于如何从头到尾编译模块的指导),我会非常高兴。

我已经上传VS2010的项目文件和源的位置:https://dl.dropboxusercontent.com/u/51243175/mod_plua_vs2010.7z

回答

1

自我回答:

主要失败原因编译是Lua中的.lib文件。 Microsoft编译器在处理C代码时会做一些奇怪的事情,所以我从LuaBinaries SourceForge存储库(http://sourceforge.net/projects/luabinaries/)得到了适当编译的.lib版本 - 特别是5.2.3/Windows Libraries/Dynamic/lua-5.2.3_Win32_dll10_lib.zip (这是编译为VS2010)。

这并没有启用mod_dbd支持,它需要来自Apache APR项目的头文件和源文件,但它确实允许编译成功。

0

你不应该真的使用mod_pLua,我近3年来一直没有这么做;)你应该使用mod_lua代替它,它与httpd捆绑在一起,并且工作方式几乎相同(尽管它不支持PHP-like脚本是mod_pLua一样)

对于DBD特定的设置(特别是如何利用它在Windows上),请参阅http://modlua.org/api/database

+0

像脚本PHP的,正是我想要的,否则我会一直使用mod_lua或可能很喜欢 –