在过去的几天里,我一直在Windows上修改mod_pLua(https://sourceforge.net/projects/modplua/或https://github.com/Humbedooh/mod_pLua)。
预构建的Windows二进制文件很有用,除了它似乎没有使用mod_dbd支持数据库连接进行编译。文档建议,要启用此功能,您必须使用某个标记进行编译,因此我一直在尝试在VS2010中编译该模块 - 希望我能够在某些时候获得mod_dbd支持 - 但是我遇到了麻烦。它只是不会编译。
到目前为止我做了什么:
我目前遇到的错误是:
错误LNK2019:函数_lua_dbopen中引用的未解析的外部符号_luaL_openlib C:\ Users \ Michael \ Desktop \ Projects \ C \ mod_plua \ mod_plua.obj
这样的过多:
IntelliSense:类型" const char ()的值(cmd_parms * cmd,void * cfg,const char * arg)"不能用于初始化类型" cmd_func"的实体。 c:\ users \ michael \ desktop \ projects \ c \ mod_plua \ mod_plua.h 394 5
由于我不是C / C ++本地人,我只是对错误的概念有一个模糊的概念,并且在我尝试修复问题时可能做错了。如果有人可以指导我朝着正确的方向发展(或者更好,那就写一下如何从头到尾编译模块的一些指导)我会很高兴。
我已在此处上传了我的VS2010项目文件和来源:https://dl.dropboxusercontent.com/u/51243175/mod_plua_vs2010.7z
答案 0 :(得分: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项目的头文件和源代码,但它确实允许成功编译。
答案 1 :(得分:0)
你真的不应该使用mod_pLua,我已经有近3年的时间没用过了;)你应该使用mod_lua代替,它与httpd捆绑在一起并且工作方式几乎相同(尽管它不支持php像mod_pLua那样的脚本)
对于特定于DBD的设置(尤其是如何在Windows上使用它),请参阅http://modlua.org/api/database