Linking error on XP 64

View: New views
2 Messages — Rating Filter:   Alert me  

Linking error on XP 64

by Conradaroma :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


Hi,

so we're trying to integrate crypto++ 5.6 into our development.  We
use it for very basic purposes.

Now, we develop multi-platform, so we just want to put all the code in
our tree and compile it with SCons. When we do this, it works for all
of our platforms, except for Windows XP 64.  The linking error looks
like so:

======
yBelt\AxSigner\build_debug_64_cl-9.0_shared\KeyGenerator.exe /
LIBPATH:A
xUtilityBelt\3rd\cryptopp-5.6.0\build_debug_64_cl-9.0_shared /
LIBPATH:A
xUtilityBelt\3rd\cryptopp-5.6.0 /LIBPATH:AxUtilityBelt\3rd\fftw\lib
Advapi32.lib
 setupapi.lib shell32.lib version.lib psapi.lib winmm.lib
cryptopp64.lib AxUtili
tyBelt\AxSigner\build_debug_64_cl-9.0_shared\source\KeyGenerator.obj
Microsoft (R) Incremental Linker Version 8.00.50727.762
Copyright (C) Microsoft Corporation.  All rights reserved.

cryptopp64.lib(integer.obj) : error LNK2019: unresolved external
symbol Baseline
_Add referenced in function "int __cdecl CryptoPP::Add(unsigned
__int64 *,unsign
ed __int64 const *,unsigned __int64 const *,unsigned __int64)" (?
Add@CryptoPP@@Y
AHPEA_KPEB_K1_K@Z)
cryptopp64.lib(integer.obj) : error LNK2019: unresolved external
symbol Baseline
_Sub referenced in function "int __cdecl CryptoPP::Subtract(unsigned
__int64 *,u
nsigned __int64 const *,unsigned __int64 const *,unsigned __int64)" (?
Subtract@C
ryptoPP@@YAHPEA_KPEB_K1_K@Z)
cryptopp64.lib(sha.obj) : error LNK2019: unresolved external symbol
X86_SHA256_H
ashBlocks referenced in function "public: virtual unsigned __int64
__cdecl Crypt
oPP::SHA256::HashMultipleBlocks(unsigned int const *,unsigned
__int64)" (?HashMu
ltipleBlocks@SHA256@CryptoPP@@UEAA_KPEBI_K@Z)
cryptopp64.lib(rijndael.obj) : error LNK2019: unresolved external
symbol Rijndae
l_Enc_AdvancedProcessBlocks referenced in function "public: virtual
unsigned __i
nt64 __cdecl CryptoPP::Rijndael::Enc::AdvancedProcessBlocks(unsigned
char const
*,unsigned char const *,unsigned char *,unsigned __int64,unsigned int)
const " (?
AdvancedProcessBlocks@Enc@Rijndael@CryptoPP@@UEBA_KPEBE0PEAE_KI@Z)
AxUtilityBelt\AxSigner\build_debug_64_cl-9.0_shared\KeyGenerator.exe :
fatal error LNK1120: 4 unresolved externals
scons: *** [AxUtilityBelt\AxSigner\build_debug_64_cl-9.0_shared
\KeyGene
rator.exe] Error 1120
scons: building terminated because of errors.
======

So, what it looks like to me is that Baseline_Add is not being built
correctly for this platform.  Of course when I go and look at the
code, it's littered with preprocessor macros, so I really have no idea
how to go about ensuring that this.  Here is the command line for the
compilation on integer.cpp, which is file that we need to compile
correctly for linking to occur:

==============
cl /FoAxUtilityBelt\3rd\cryptopp-5.6.0\build_debug_64_cl-9.0_shared
\sou
rce\integer.obj /c AxUtilityBelt\3rd\cryptopp-5.6.0\source
\integer.cpp /W0 /Zp16
 /favor:AMD64 /EHsc /DWIN32 /D_WINDOWS /nologo /GR /DNOMINMAX /Oi /
wd4244 /MTd /
Od /Z7 /RTC1 /Oi /D_DEBUG /DEXPOSE_AX_GRIND_DLL /TP /W0 /Zp16 /
favor:AMD64 /EHsc
 /DWIN32 /D_WINDOWS /nologo /GR /DNOMINMAX /Oi /wd4244 /MTd /Od /Z7 /
RTC1 /Oi /D
_DEBUG /DEXPOSE_AX_GRIND_DLL /DBOOST_ALL_NO_LIB /
DBOOST_LIB_DIAGNOSTIC /DCUDA /D
CRYPTOPP_EXPORTS /IAxUtilityBelt\3rd
\cryptopp-5.6.0\build_debug_64_cl-9.0_shared
\include /IAxUtilityBelt\3rd\cryptopp-5.6.0\include /IAxUtilityBelt
\3rd
\cryptopp-5.6.0\build_debug_64_cl-9.0_shared\include /IAxUtilityBelt
\3r
d\cryptopp-5.6.0\include
=================

So, here's hoping there's someone who knows the code and knows which
preprocessor defines I am missing, or shouldn't have in order to solve
my linker error above.

cheers,
conrad
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the "Crypto++ Users" Google Group.
To unsubscribe, send an email to cryptopp-users-unsubscribe@....
More information about Crypto++ and this group is available at http://www.cryptopp.com.
-~----------~----~----~----~------~----~------~--~---


Re: Linking error on XP 64

by Wei Dai :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


For 64-bit Windows, Baseline_Add() is defined in x64dll.asm. You need to
figure out why it is not being compiled or linked in.

--------------------------------------------------
From: "Conradaroma" <conrad.whelan@...>
Sent: Thursday, July 30, 2009 1:45 PM
To: "Crypto++ Users" <cryptopp-users@...>
Subject: Linking error on XP 64

>
> Hi,
>
> so we're trying to integrate crypto++ 5.6 into our development.  We
> use it for very basic purposes.
>
> Now, we develop multi-platform, so we just want to put all the code in
> our tree and compile it with SCons. When we do this, it works for all
> of our platforms, except for Windows XP 64.  The linking error looks
> like so:
>
> ======
> yBelt\AxSigner\build_debug_64_cl-9.0_shared\KeyGenerator.exe /
> LIBPATH:A
> xUtilityBelt\3rd\cryptopp-5.6.0\build_debug_64_cl-9.0_shared /
> LIBPATH:A
> xUtilityBelt\3rd\cryptopp-5.6.0 /LIBPATH:AxUtilityBelt\3rd\fftw\lib
> Advapi32.lib
> setupapi.lib shell32.lib version.lib psapi.lib winmm.lib
> cryptopp64.lib AxUtili
> tyBelt\AxSigner\build_debug_64_cl-9.0_shared\source\KeyGenerator.obj
> Microsoft (R) Incremental Linker Version 8.00.50727.762
> Copyright (C) Microsoft Corporation.  All rights reserved.
>
> cryptopp64.lib(integer.obj) : error LNK2019: unresolved external
> symbol Baseline
> _Add referenced in function "int __cdecl CryptoPP::Add(unsigned
> __int64 *,unsign
> ed __int64 const *,unsigned __int64 const *,unsigned __int64)" (?
> Add@CryptoPP@@Y
> AHPEA_KPEB_K1_K@Z)
> cryptopp64.lib(integer.obj) : error LNK2019: unresolved external
> symbol Baseline
> _Sub referenced in function "int __cdecl CryptoPP::Subtract(unsigned
> __int64 *,u
> nsigned __int64 const *,unsigned __int64 const *,unsigned __int64)" (?
> Subtract@C
> ryptoPP@@YAHPEA_KPEB_K1_K@Z)
> cryptopp64.lib(sha.obj) : error LNK2019: unresolved external symbol
> X86_SHA256_H
> ashBlocks referenced in function "public: virtual unsigned __int64
> __cdecl Crypt
> oPP::SHA256::HashMultipleBlocks(unsigned int const *,unsigned
> __int64)" (?HashMu
> ltipleBlocks@SHA256@CryptoPP@@UEAA_KPEBI_K@Z)
> cryptopp64.lib(rijndael.obj) : error LNK2019: unresolved external
> symbol Rijndae
> l_Enc_AdvancedProcessBlocks referenced in function "public: virtual
> unsigned __i
> nt64 __cdecl CryptoPP::Rijndael::Enc::AdvancedProcessBlocks(unsigned
> char const
> *,unsigned char const *,unsigned char *,unsigned __int64,unsigned int)
> const " (?
> AdvancedProcessBlocks@Enc@Rijndael@CryptoPP@@UEBA_KPEBE0PEAE_KI@Z)
> AxUtilityBelt\AxSigner\build_debug_64_cl-9.0_shared\KeyGenerator.exe :
> fatal error LNK1120: 4 unresolved externals
> scons: *** [AxUtilityBelt\AxSigner\build_debug_64_cl-9.0_shared
> \KeyGene
> rator.exe] Error 1120
> scons: building terminated because of errors.
> ======
>
> So, what it looks like to me is that Baseline_Add is not being built
> correctly for this platform.  Of course when I go and look at the
> code, it's littered with preprocessor macros, so I really have no idea
> how to go about ensuring that this.  Here is the command line for the
> compilation on integer.cpp, which is file that we need to compile
> correctly for linking to occur:
>
> ==============
> cl /FoAxUtilityBelt\3rd\cryptopp-5.6.0\build_debug_64_cl-9.0_shared
> \sou
> rce\integer.obj /c AxUtilityBelt\3rd\cryptopp-5.6.0\source
> \integer.cpp /W0 /Zp16
> /favor:AMD64 /EHsc /DWIN32 /D_WINDOWS /nologo /GR /DNOMINMAX /Oi /
> wd4244 /MTd /
> Od /Z7 /RTC1 /Oi /D_DEBUG /DEXPOSE_AX_GRIND_DLL /TP /W0 /Zp16 /
> favor:AMD64 /EHsc
> /DWIN32 /D_WINDOWS /nologo /GR /DNOMINMAX /Oi /wd4244 /MTd /Od /Z7 /
> RTC1 /Oi /D
> _DEBUG /DEXPOSE_AX_GRIND_DLL /DBOOST_ALL_NO_LIB /
> DBOOST_LIB_DIAGNOSTIC /DCUDA /D
> CRYPTOPP_EXPORTS /IAxUtilityBelt\3rd
> \cryptopp-5.6.0\build_debug_64_cl-9.0_shared
> \include /IAxUtilityBelt\3rd\cryptopp-5.6.0\include /IAxUtilityBelt
> \3rd
> \cryptopp-5.6.0\build_debug_64_cl-9.0_shared\include /IAxUtilityBelt
> \3r
> d\cryptopp-5.6.0\include
> =================
>
> So, here's hoping there's someone who knows the code and knows which
> preprocessor defines I am missing, or shouldn't have in order to solve
> my linker error above.
>
> cheers,
> conrad
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the "Crypto++ Users" Google Group.
To unsubscribe, send an email to cryptopp-users-unsubscribe@....
More information about Crypto++ and this group is available at http://www.cryptopp.com.
-~----------~----~----~----~------~----~------~--~---