Hello;
I'm trying to implement some old code to update an old C++ MacOS
application, which uses an old version of Cryptopp (5.1.2) and, no matter
which version of cryptopp I use, I'm getting a "Duplicate Symbols" error on
linking.
What I'm doing:
1) Downloading a version of cryptopp from Cryptopp.com (as an example,
version 5.6.2) and uncompress the archive
2) There's "bug" in our source that requires a minimal change to
"filters.h" and "filters.cpp", adding a constant
3) In Terminal, navigate to that folder, enter $ export CXXFLAGS="-DNDEBUG
-g2 -O2 -stdlib=libc++"
4) Then enter $ CXX=clang++ make -j 4
5) After a bit, it builds just fine
6) Add the library to my Xcode project and make the headers available
7) Clean the project
8) Build the project, and at linking I get:
ld: 33 duplicate symbols for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see
invocation)
Expanding that out, it's finding duplicate symbols in "AESSupport.o" and in
"CryptoLib.o":
*Showing All Messages*
Ld Build/Products/Debug/MinimalCaseCryptoPP normal x86_64
cd "/Aatrix Projects/MinimalCaseCryptoPP"
export MACOSX_DEPLOYMENT_TARGET=10.13
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++
-arch x86_64 -isysroot
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk
-L/Aatrix\ Projects/MinimalCaseCryptoPP/Build/Products/Debug -L/Aatrix\
Projects/MinimalCaseCryptoPP/MinimalCaseCryptoPP -F/Aatrix\
Projects/MinimalCaseCryptoPP/Build/Products/Debug -filelist /Aatrix\
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/MinimalCaseCryptoPP.LinkFileList
-mmacosx-version-min=10.13 -Xlinker -object_path_lto -Xlinker /Aatrix\
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/MinimalCaseCryptoPP_lto.o
-Xlinker -export_dynamic -Xlinker -no_deduplicate -stdlib=libc++ -lcryptopp
-Xlinker -dependency_info -Xlinker /Aatrix\
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/MinimalCaseCryptoPP_dependency_info.dat
-o /Aatrix\
Projects/MinimalCaseCryptoPP/Build/Products/Debug/MinimalCaseCryptoPP
duplicate symbol __ZN9AesStream11_fillBufferEv in:
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/AESSupport.o
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/CryptoLib.o
duplicate symbol __ZN9AesStream12_flushBufferEv in:
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/AESSupport.o
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/CryptoLib.o
duplicate symbol __ZN9AesStream12_writeBufferEv in:
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/AESSupport.o
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/CryptoLib.o
duplicate symbol __ZN7AesFile5CloseEv in:
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/AESSupport.o
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/CryptoLib.o
duplicate symbol __ZN9AesStream12_findNewLineEv in:
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/AESSupport.o
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/CryptoLib.o
duplicate symbol __ZN9AesStream14StreamReadLineEv in:
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/AESSupport.o
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/CryptoLib.o
duplicate symbol __ZN7AesFile12FileReadLineEv in:
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/AESSupport.o
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/CryptoLib.o
duplicate symbol __ZN9AesStream12_checkFillIVEv in:
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/AESSupport.o
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/CryptoLib.o
duplicate symbol __ZN7AesBaseC2Ev in:
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/AESSupport.o
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/CryptoLib.o
duplicate symbol __ZN7AesBaseC1Ev in:
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/AESSupport.o
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/CryptoLib.o
duplicate symbol __ZN7AesBase13DecryptStringEPKciPhi in:
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/AESSupport.o
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/CryptoLib.o
duplicate symbol __ZN9AesStream10StreamReadEi in:
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/AESSupport.o
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/CryptoLib.o
duplicate symbol __ZN7AesFile8FileReadEi in:
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/AESSupport.o
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/CryptoLib.o
duplicate symbol
__ZN9AesStream12_writeToFileENSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEEi
in:
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/AESSupport.o
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/CryptoLib.o
duplicate symbol __ZN7AesBase13EncryptStringEPKclPh in:
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/AESSupport.o
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/CryptoLib.o
duplicate symbol __ZN7AesBase16_getEncryptedKeyEPKcPh in:
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/AESSupport.o
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/CryptoLib.o
duplicate symbol __ZN7AesBase16RSAEncryptStringEPKcS1_Ph in:
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/AESSupport.o
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/CryptoLib.o
duplicate symbol __ZN7AesBase19DecryptFileToBufferEPKclPc in:
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/AESSupport.o
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/CryptoLib.o
duplicate symbol __ZN7AesBase16RSADecryptStringEPKcPKhPc in:
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/AESSupport.o
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/CryptoLib.o
duplicate symbol __ZN7AesBase19DecryptFileToBufferEPKclS1_Pc in:
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/AESSupport.o
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/CryptoLib.o
duplicate symbol __ZN7AesBase4InitEPKc in:
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/AESSupport.o
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/CryptoLib.o
duplicate symbol __ZN9AesStream11StreamWriteEPKc in:
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/AESSupport.o
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/CryptoLib.o
duplicate symbol __ZN7AesFile9FileWriteEPKc in:
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/AESSupport.o
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/CryptoLib.o
duplicate symbol __ZN7AesBase13_writeKeyFileEPKc in:
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/AESSupport.o
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/CryptoLib.o
duplicate symbol __ZN9AesStream11BeginCryptoEP7__sFILEPKc in:
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/AESSupport.o
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/CryptoLib.o
duplicate symbol __ZN7AesBase8CheckKeyEPKclS1_ in:
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/AESSupport.o
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/CryptoLib.o
duplicate symbol __ZN7AesBase19EncryptBufferToFileEPKclS1_ in:
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/AESSupport.o
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/CryptoLib.o
duplicate symbol __ZN7AesBase8CheckKeyEPKcS1_ in:
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/AESSupport.o
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/CryptoLib.o
duplicate symbol __ZN7AesBase4InitEPKcS1_ in:
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/AESSupport.o
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/CryptoLib.o
duplicate symbol __ZN7AesBase14GenerateRSAKeyEiPKcS1_S1_ in:
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/AESSupport.o
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/CryptoLib.o
duplicate symbol __ZN7AesBase11RSACheckKeyEPKcS1_S1_ in:
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/AESSupport.o
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/CryptoLib.o
duplicate symbol __ZN7AesFile8OpenFileEPKcS1_S1_ in:
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/AESSupport.o
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/CryptoLib.o
duplicate symbol __ZN7AesBase18_writeEncryptedKeyEP7__sFILE in:
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/AESSupport.o
/Aatrix
Projects/MinimalCaseCryptoPP/Build/Intermediates/MinimalCaseCryptoPP.build/Debug/MinimalCaseCryptoPP.build/Objects-normal/x86_64/CryptoLib.o
ld: 33 duplicate symbols for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see
invocation)
----
My "Minimal Case" project consists of nothing but the compiled cryptopp
library, main.cpp and the two cpp files that I'm attempting to integrate.
Any help would be appreciated, I've been banging my head on this problem
for a couple of days.
Thanks!
dale
--
Aatrix Software, Inc. - 2100 Library Circle - Grand Forks, ND 58201 -
www.aatrix.com <https://www.aatrix.com>
The content of this message may be
confidential and is intended only for the recipient specified in the
message. If you have received this message by mistake, please inform us so
we can ensure this mistake does not occur in the future, then delete the
message. The integrity and security of this email cannot be guaranteed
over the Internet; therefore, the sender will not be held liable for any
damage caused by the message.
--
You received this message because you are subscribed to "Crypto++ Users". More
information about Crypto++ and this group is available at
http://www.cryptopp.com and
http://groups.google.com/forum/#!forum/cryptopp-users.
---
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.