我似乎无法在Windows上编译mod_dontdothat。 有人设法实现这一目标吗?

编辑:

我已经尝试根据网站上的自述文件编译文件,我试图添加额外的库来减少链接错误。 我已经安装了以下内容:

  1. Apache 2.2.9
  2. Visual Studio 2008
  3. 的activeperl
  4. 来自ApacheLounge的apxs-win32
  5. Subversion libs和头文件

我运行以下命令行:

C:\Program Files\Apache Software Foundation\Apache2.2\bin>apxs -c -I ..\include\
svn_config.h -L ..\lib -L C:\Progra~1\Micros~1.0\VC\lib -l apr-1.lib -l aprutil-
1.lib -l svn_subr-1.lib -l libapr-1.lib -l libaprutil-1.lib -l libhttpd.lib -l l
ibsvn_subr-1.lib -l mod_dav.lib mod_dontdothat.c

然后我收到以下错误:

cl  /nologo /MD /W3 /O2 /D WIN32 /D _WINDOWS /D NDEBUG    -I"C:\PROGRA~1\APACHE~
1\Apache2.2\include"  /I"..\include\svn_config.h"  /c /Fomod_dontdothat.lo mod_d
ontdothat.c
mod_dontdothat.c
link kernel32.lib /nologo /subsystem:windows /dll /machine:I386 /libpath:"C:\PRO
GRA~1\APACHE~1\Apache2.2\lib" /out:mod_dontdothat.so  /libpath:"..\lib"  /libpat
h:"C:\Progra~1\Micros~1.0\VC\lib"  apr-1.lib aprutil-1.lib svn_subr-1.lib libapr
-1.lib libaprutil-1.lib libhttpd.lib libsvn_subr-1.lib mod_dav.lib   mod_dontdot
hat.lo
   Creating library mod_dontdothat.lib and object mod_dontdothat.exp
mod_dontdothat.lo : error LNK2019: unresolved external symbol _dav_svn_split_uri
@32 referenced in function _is_this_legal
svn_subr-1.lib(io.obj) : error LNK2001: unresolved external symbol __imp__libint
l_dgettext
svn_subr-1.lib(subst.obj) : error LNK2001: unresolved external symbol __imp__lib
intl_dgettext
svn_subr-1.lib(config_auth.obj) : error LNK2001: unresolved external symbol __im
p__libintl_dgettext
svn_subr-1.lib(time.obj) : error LNK2001: unresolved external symbol __imp__libi
ntl_dgettext
svn_subr-1.lib(nls.obj) : error LNK2001: unresolved external symbol __imp__libin
tl_dgettext
svn_subr-1.lib(dso.obj) : error LNK2001: unresolved external symbol __imp__libin
tl_dgettext
svn_subr-1.lib(path.obj) : error LNK2001: unresolved external symbol __imp__libi
ntl_dgettext
svn_subr-1.lib(prompt.obj) : error LNK2001: unresolved external symbol __imp__li
bintl_dgettext
svn_subr-1.lib(error.obj) : error LNK2019: unresolved external symbol __imp__lib
intl_dgettext referenced in function _print_error
svn_subr-1.lib(config.obj) : error LNK2001: unresolved external symbol __imp__li
bintl_dgettext
svn_subr-1.lib(utf.obj) : error LNK2001: unresolved external symbol __imp__libin
tl_dgettext
svn_subr-1.lib(cmdline.obj) : error LNK2001: unresolved external symbol __imp__l
ibintl_dgettext
svn_subr-1.lib(utf.obj) : error LNK2019: unresolved external symbol __imp__libin
tl_sprintf referenced in function _fuzzy_escape
svn_subr-1.lib(path.obj) : error LNK2001: unresolved external symbol __imp__libi
ntl_sprintf
svn_subr-1.lib(cmdline.obj) : error LNK2019: unresolved external symbol __imp__l
ibintl_fprintf referenced in function _svn_cmdline_init
svn_subr-1.lib(config_win.obj) : error LNK2019: unresolved external symbol __imp
__SHGetFolderPathA@20 referenced in function _svn_config__win_config_path
svn_subr-1.lib(config_win.obj) : error LNK2019: unresolved external symbol __imp
__SHGetFolderPathW@20 referenced in function _svn_config__win_config_path
svn_subr-1.lib(config_win.obj) : error LNK2019: unresolved external symbol __imp
__RegCloseKey@4 referenced in function _svn_config__parse_registry
svn_subr-1.lib(config_win.obj) : error LNK2019: unresolved external symbol __imp
__RegEnumKeyExA@32 referenced in function _svn_config__parse_registry
svn_subr-1.lib(config_win.obj) : error LNK2019: unresolved external symbol __imp
__RegOpenKeyExA@20 referenced in function _svn_config__parse_registry
svn_subr-1.lib(config_win.obj) : error LNK2019: unresolved external symbol __imp
__RegQueryValueExA@24 referenced in function _parse_section
svn_subr-1.lib(config_win.obj) : error LNK2019: unresolved external symbol __imp
__RegEnumValueA@32 referenced in function _parse_section
svn_subr-1.lib(win32_xlate.obj) : error LNK2019: unresolved external symbol __im
p__CoUninitialize@0 referenced in function _svn_subr__win32_xlate_open
svn_subr-1.lib(win32_xlate.obj) : error LNK2019: unresolved external symbol __im
p__CoInitializeEx@8 referenced in function _svn_subr__win32_xlate_open
svn_subr-1.lib(win32_xlate.obj) : error LNK2019: unresolved external symbol __im
p__CoCreateInstance@20 referenced in function _get_page_id_from_name
svn_subr-1.lib(nls.obj) : error LNK2019: unresolved external symbol __imp__libin
tl_bindtextdomain referenced in function _svn_nls_init
svn_subr-1.lib(stream.obj) : error LNK2019: unresolved external symbol _inflate
referenced in function _read_handler_gz
svn_subr-1.lib(stream.obj) : error LNK2019: unresolved external symbol _inflateI
nit_ referenced in function _read_handler_gz
svn_subr-1.lib(stream.obj) : error LNK2019: unresolved external symbol _deflate
referenced in function _write_handler_gz
svn_subr-1.lib(stream.obj) : error LNK2019: unresolved external symbol _deflateI
nit_ referenced in function _write_handler_gz
svn_subr-1.lib(stream.obj) : error LNK2019: unresolved external symbol _deflateE
nd referenced in function _close_handler_gz
svn_subr-1.lib(stream.obj) : error LNK2019: unresolved external symbol _inflateE
nd referenced in function _close_handler_gz
mod_dontdothat.so : fatal error LNK1120: 21 unresolved externals
apxs:Error: Command failed with rc=6291456
.

我不是太多的C大师,所以任何寻找这些未解决的外部符号的帮助将非常感激!

===============>>#1 票数:7 已采纳

我设法编译模块。 先决条件:

这是一个循序渐进的指南。 下载这些包:

将dev软件包解压缩到c:\\temp\\svn ,将另一个软件包解压缩到c:\\temp\\svn-src ,将mod_dontdothat文件解mod_dontdothatC:\\Temp\\dontdothat

mod_dontdothat模块的依赖项mod_dontdothatmod_dav_svn模块。 不幸的是,你会发现mod_dav_svn二进制文件只作为共享库(DLL)。 您无法链接DLL。 所以第一步是构建一个静态mod_dav_svn库:

cd C:\Temp\svn-src\subversion\mod_dav_svn
apxs -c -I ..\include  -L C:\Temp\svn\lib -l libsvn_delta-1.lib -l libsvn_diff-1.lib -l libsvn_fs-1.lib -l libsvn_fs_base-1.lib -l libsvn_fs_fs-1.lib -l libsvn_fs_util-1.lib -l libsvn_repos-1.lib -l libsvn_subr-1.lib -l libapr-1.lib -l libaprutil-1.lib -l libhttpd.lib -l mod_dav.lib -l xml.lib  -n mod_dav_svn mod_dav_svn.c activity.c authz.c deadprops.c liveprops.c lock.c merge.c mirror.c repos.c util.c version.c reports\dated-rev.c reports\file-revs.c reports\get-locations.c reports\get-location-segments.c reports\get-locks.c reports\log.c reports\mergeinfo.c reports\replay.c reports\update.c

apxs调用将打印它执行的命令。 最后一个命令是构建DLL的链接调用。 复制它将“link”替换为“lib”,删除“/ dll”参数,并将“out”参数文件名更改为“ libmod_dav_svn.lib ”。 你应该得到类似的东西:

lib kernel32.lib /nologo /subsystem:windows /machine:I386 /libpath:"C:\PROGRA~1\APACHE~1\Apache2.2\lib" /out:libmod_dav_svn.lib  /libpath:"C:\Temp\svn\lib"  libsvn_delta-1.lib libsvn_diff-1.lib libsvn_fs-1.lib libsvn_fs_base-1.lib libsvn_fs_fs-1.lib libsvn_fs_util-1.lib libsvn_repos-1.lib libsvn_subr-1.lib libapr-1.lib libaprutil-1.lib libhttpd.lib mod_dav.lib xml.lib   reports\update.lo reports\replay.lo reports\mergeinfo.lo reports\log.lo reports\get-locks.lo reports\get-location-segments.lo reports\get-locations.lo reports\file-revs.lo reports\dated-rev.lo version.lo util.lo repos.lo mirror.lo merge.lo lock.lo liveprops.lo deadprops.lo authz.lo activity.lo mod_dav_svn.lo

您将收到一些链接警告。 你可以忽略它们。 libmod_dav_svn.lib复制到mod_dontdothat目录。 现在开始mod_dontdothat的编译过程:

C:\Temp\dontdothat
apxs -c -I C:\Temp\svn\include -L C:\Temp\svn\lib -l libsvn_subr-1.lib -l libapr-1.lib -l libaprutil-1.lib -l libhttpd.lib -l mod_dav.lib -l xml.lib -l libmod_dav_svn.lib    mod_dontdothat.c
apxs -i -n dontdothat mod_dontdothat.so

这应该可以解决问题。

===============>>#2 票数:3

谷歌搜索我有

  • mod_dav_svn.lib_dav_svn_split_uri
  • intl3_svn.lib的一切事物_libintl
  • 用于SHGetFolderPath的shell32.lib
  • 对于Reg advapi32.lib的东西, advapi32.lib
  • 用于CoInitialize ole32.lib和它的同类
  • inflatedeflate的气味就像zlib1.lib或类似的东西

希望有所帮助。

===============>>#3 票数:1

谢谢你修改这个问题。

它看起来像一个明确的链接器问题。 我看到第一个未定义的符号与webdav有关。 你确定你在正确的地方有那个图书馆吗? 我看到你给了很多svn libs很长的路径,也许你可能只忽略了一个?

  ask by Trumpi translate from so

未解决问题?本站智能推荐:

1回复

如果项目文件不在根目录中,如何在Windows中配置xampp

我正在使用Windows。我的xampp安装在驱动器C中,首先我在文件中工作 但是比起SVN,我现在将所有文件复制粘贴到这里SVN在这里配置 我正在本地测试我的项目,我的意思是在本地主机,首先是在 所以我现在可以工作,测试,更新,我想可以在这里的文件中工作 但是问
1回复

mod dav svn apache定制日志

除了使用mod dav svn和apache的{SVN-REPOS-NAME}和{SVN-ACTION}之外,创建自定义apache日志时是否可以记录有关SVN存储库或文件的其他详细信息? 更新: 我确认目标目录已记录在日志文件中,而对上面的代码没有任何更改。 我只在root
1回复

mod_dav_svn.so有什么用?

在集成apache和subversion的同时,我们正在使用mod_dav_svn.so并加载此模块,请问有人可以帮助我了解此模块的用法吗?
8回复

如何在命名虚拟主机的根目录中启用mod_dav_svn?

这可能吗? 我遇到了SVN客户端无法访问存储库的问题,并显示以下错误消息: 存储库永久移动到' http://svn.example.com/test/ '; 请搬迁 如果我将'/'添加到我尝试访问的路径的末尾,它只是将其再次剥离,并显示相同的错误消息。 我的配置文件如下
1回复

如何在局域网,操作系统中为TortoiseSVN存储库启用HTTP协议:Windows Server 2008

我已经在Windows Server 2008中成功安装了WAMP和TortoiseSVN。我们为多个开发人员启用了LAN,我试图使HTTP协议能够访问存储库,以便多个开发人员可以从其计算机进行提交。 请帮助我解决此问题。 提前致谢。
1回复

Apache 2.4 mod_dav_svn配置文件

我试图在由Apache 2.4服务器提供服务的Subversion存储库中安装服务器指定的配置。 根据我发现的信息,必须更改服务器上的SVN配置文件,但是Apache服务器的mod_dav_svn模块使用了哪一个? 我已经尝试过其他方法(管理员,公共),但没有一个起作用。 有人知道
1回复

在AIX上具有APACHE的SVN-无法加载模块mod_dav_svn.so

我已经在我的AIX服务器上安装了subversion和apache。 每个都运行良好。 但是当我尝试使用包含的svn库启动apache时,出现了以下错误: httpd:/opt/freeware/etc/httpd/conf/httpd.conf的第523行的语法错误:/opt/f
1回复

Apache,SVN和mod_python

我们正在使用Apache 2.2在Windows上服务器SVN(1.6.2)存储库。 我们使用SSPI进行身份验证,并且可以正常工作。 我们有许多不同的存储库,并在httpd.conf中使用SVNParentPath为其提供服务。 就像是: 因此,从客户端,我可以浏览到http:/
2回复

使用Windows域组的SVN路径身份验证

如何在Windows上配置Apache提供的SVN,以使存储库中的路径可以使用Windows域组配置访问控制?
1回复

在Windows 7 64位上将wamp服务器配置为SVN

我正在使用Wamp服务器发布wordpress网站,一切正常,但是现在我们是一个团队,我们所有人应该同时在一个网站上工作,并在线查看结果 我尝试使用wamp服务器配置VisualSVN,但在将以下行添加到httpd.conf文件后,服​​务器将无法启动 和以下 我的问题是: