Linking problem with Kerberos for Windows & mod_auth_kerb.

Frédéric Dubois frederic.dubois at eurocis.fr
Mon Dec 6 05:54:20 EST 2010


Hi,

I'm currently trying to compile the Kerberos authentication module for
apache mod_auth_kerb on the windows platform.

I have downloaded the kerberos for Windows release (v3.2.2) and set up
the project in Visual Studio 2005.

The compilation phase seems to go well but it fails during the linking
phase.

I get the following errors :
Linking...
   Creating library D:\Dev\Kerberos\module_auth_kerb\Debug
\module_auth_kerb.lib and object D:\Dev\Kerberos\module_auth_kerb\Debug
\module_auth_kerb.exp
mod_auth_kerb.obj : error LNK2001: unresolved external symbol
_krb5_rc_dfl_resolve at 12
mod_auth_kerb.obj : error LNK2001: unresolved external symbol
_krb5_rc_dfl_get_name at 8
mod_auth_kerb.obj : error LNK2001: unresolved external symbol
_krb5_rc_dfl_get_span at 12
mod_auth_kerb.obj : error LNK2001: unresolved external symbol
_krb5_rc_dfl_expunge at 8
mod_auth_kerb.obj : error LNK2001: unresolved external symbol
_krb5_rc_dfl_close at 8
mod_auth_kerb.obj : error LNK2001: unresolved external symbol
_krb5_rc_dfl_destroy at 8
mod_auth_kerb.obj : error LNK2001: unresolved external symbol
_krb5_rc_dfl_recover at 8
mod_auth_kerb.obj : error LNK2001: unresolved external symbol
_krb5_rc_dfl_init at 12
mod_auth_kerb.obj : error LNK2019: unresolved external symbol
_krb5_rc_destroy referenced in function _have_rcache_type
mod_auth_kerb.obj : error LNK2019: unresolved external symbol
_krb5_rc_resolve_full referenced in function _have_rcache_type
D:\Dev\Kerberos\module_auth_kerb\Debug\module_auth_kerb.so : fatal error
LNK1120: 10 unresolved externals

The command line options used by Visual Studio for the compilation phase
are the following:
/Od /I "." /I "D:\Dev\Kerberos\httpd-2.2.8\include" /I "D:\Dev\Kerberos
\httpd-2.2.8\srclib\apr\include" /I "D:\Dev\Kerberos\httpd-2.2.8\srclib
\apr-util\include" /I "D:\Dev\Kerberos\kfw-3-2-2-final\inc\krb5" /D
"WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_USRDLL" /D
"MODULE_AUTH_KERB_EXPORTS" /D "_WINDLL" /D "_UNICODE" /D
"UNICODE" /Gm /EHsc /RTC1 /MTd /Fo"Debug\\" /Fd"Debug
\vc80.pdb" /W3 /nologo /c /Wp64 /Gd /TC /errorReport:prompt

And the command line options used for the linking phase are :
/OUT:"D:\Dev\Kerberos\module_auth_kerb\Debug
\module_auth_kerb.so" /INCREMENTAL /NOLOGO /LIBPATH:"D:\Dev\Kerberos
\httpd-2.2.8\Release" /LIBPATH:"D:\Dev\Kerberos\httpd-2.2.8\srclib\apr
\Release" /LIBPATH:"D:\Dev\Kerberos\httpd-2.2.8\srclib\apr-util
\Release" /LIBPATH:"D:\Dev\Kerberos\kfw-3-2-2-final\lib
\i386" /DLL /MANIFEST /MANIFESTFILE:"Debug
\module_auth_kerb.so.intermediate.manifest" /DEBUG /PDB:"d:\Dev\Kerberos
\module_auth_kerb\debug
\module_auth_kerb.pdb" /SUBSYSTEM:WINDOWS /MACHINE:X86 /ERRORREPORT:PROMPT krb5_32.lib libaprutil-1.lib libapr-1.lib libhttpd.lib httpd.lib krb524.lib comerr32.lib loadfuncs.lib gssapi32.lib delaydlls.lib getopt.lib kclnt32.lib krbcc32.lib krbv4w32.lib leashw32.lib nidmgr32.lib wshelp32.lib xpprof32.lib msvcmrt.lib  kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib "..\debug\spnego_kerb.lib"

When I inspect the contents of the kerb5_32.lib, I can't see references
to the missing symbols which is coherent with the errors reported by
Visual studio. But in the source code, I can see that the "missing"
function exist.

Does anybody have an idea of what's happening and how to solve this ?
Thanks for the help.

Fred




More information about the krbdev mailing list