문제

Windows에서는 mod_dontdothat을 컴파일할 수 없는 것 같습니다.누구든지 이것을 달성 했습니까?

편집하다:

사이트의 추가 정보에 따라 파일을 컴파일해 보았고 링크 오류를 줄이기 위해 추가 libs를 추가하려고 했습니다.다음이 설치되어 있습니다.

  1. 아파치 2.2.9
  2. 비주얼 스튜디오 2008
  3. 액티브펄
  4. ApacheLounge의 apxs-win32
  5. Subversion 라이브러리 및 헤더

다음 명령줄을 실행합니다.

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 전문가가 아니기 때문에 이러한 해결되지 않은 외부 기호를 찾는 데 도움을 주시면 감사하겠습니다!

도움이 되었습니까?

해결책

모듈을 컴파일하는 데 성공했습니다.전제 조건:

  • 아파치 2.2.11
  • apxs-win32 www.apachelounge.com에서
  • 비주얼 스튜디오 2005
  • 액티브 펄 5.8.8 (apxs-win32 설치에는 Perl이 필요합니다)

다음은 단계별 가이드입니다.다음 패키지를 다운로드하세요.

dev 패키지의 압축을 풀어주세요. c:\temp\svn 그리고 다른 패키지는 c:\temp\svn-src 그리고 mod_dontdothat 파일을 C:\Temp\dontdothat.

종속성 중 하나 mod_dontdothat 모듈은 mod_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

이것은 트릭을 수행해야합니다.

다른 팁

구글링해서 얻은 정보 있어요

  • mod_dav_svn.lib ~을 위한 _dav_svn_split_uri
  • intl3_svn.lib 모든 것에 대해 _libintl
  • shell32.lib SHGetFolderPath의 경우
  • advapi32.lib ~을 위한 Reg아이스트리 물건
  • ole32.lib ~을 위한 CoInitialize 그리고 그거랑 비슷해
  • inflate 그리고 deflate 같은 냄새가 난다 zlib1.lib 아니면 그런 것

도움이 되길 바랍니다.

질문을 수정해 주셔서 감사합니다.

확실한 링커 문제인 것 같습니다.정의되지 않은 첫 번째 기호는 webdav와 관련이 있는 것으로 보입니다.해당 라이브러리가 올바른 위치에 있다고 확신하시나요?나는 당신이 많은 svn libs로 멋진 긴 경로를 제공하는 것을 봅니다. 어쩌면 하나만 간과했을 수도 있습니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top