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 cryptopp-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.