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.

Reply via email to