> I'm sad to have to tell you that the 64-bit builds of *all* projects > except cryptlib (=cryptest, cryptopp) are broken and result in a bunch of > "error LNK2001: unresolved external symbol ...". I suspect that dlltest > works because it doesn't link any of the affected functions. >
OK, so I had a chance to spend some time with this.... Microsoft documented some of the changes to the underlying MSBuild engine at http://blogs.msdn.com/b/vcblog/archive/2010/03/02/visual-studio-2010-c-project-upgrade-guide.aspx. They created a lot of problems. *** TargetName and TargetExt *** VS 2010 and above depend upon TargetName and TargetExt. Microsoft stated they would not set it based on OutputDirectory and OutputFile. What they don't say is VS2005/VS2008 *lack* the setting, so there's no way for use to fix it before the upgrade (and they refuse to set it after the upgrade). *** Intermediate Directory Path *** Over half the Intermediate Directories were simply wrong after the upgrade. *** Name Mangling *** It appears the algorithm to produce mangled names changed. We have at least one: error LNK2019: unresolved external symbol "unsigned __int64 * CryptoPP::rdtable::Te" (?Te@rdtable@CryptoPP@@3PA_KA) referenced in function Rijndael_Enc_AdvancedProcessBlocks x64\DLL_Output\Release\cryptopp.dll : fatal error LNK1120: 1 unresolved externals I'll have to investigate this further. *** Incorrect Architectures *** I'm seeing a fair amount of this: cryptopp.lib(cryptopp.dll) : fatal error LNK1112: module machine type 'X86' conflicts with target machine type 'x64' Even with the Intermediate directories fixed, its still managing to produce the wrong intermediate code, or place them in the wrong directories. ********** its going to take time to find solutions to all the problems Microsoft created. Jeff -- -- You received this message because you are subscribed to the "Crypto++ Users" Google Group. To unsubscribe, send an email to [email protected]. More information about Crypto++ and this group is available at http://www.cryptopp.com. --- You received this message because you are subscribed to the Google Groups "Crypto++ Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
