On Thursday, February 19, 2015 at 8:11:34 AM UTC-5, Rajiv Poplai wrote:
>
> Thanks Jeff, I followed the steps detailed but it is showing one symbol as 
> not found.
>
> CryptoPP::RandomPool::GenerateIntoBufferedTransformation(CryptoPP::BufferedTransformation
>  
> &, std::string const&, unsigned long long)
> referenced from Vtable for CryptoPP::AutoSeededRandomPool 
>
> This is caused by following statement in code
> CryptoPP::AutoSeededRandomPool  rnd;
>
> In the randpool.cpp GenerateIntoBufferedTransformation has the last 
> parameter defined as lword and not unsigned long long. 
> Not able to figure out how to rectify this problem
>
This is just a typedef from config.h:

    #if defined(_MSC_VER) || defined(__BORLANDC__)
      typedef unsigned __int64 word64;
      #define W64LIT(x) x##ui64
    #else
      typedef unsigned long long word64;
      #define W64LIT(x) x##ULL
    #endif

    // define large word type, used for file offsets and such
    typedef word64 lword;
    const lword LWORD_MAX = W64LIT(0xffffffffffffffff);

Please provide the Xcode setting you are using under C++ Standard Library 
(CLANG_CXX_LIBRARY).

Please provide the output of of lipo. It should look something like this:

    $ xcrun -sdk iphoneos lipo -info /usr/local/lib/libcryptopp.a
    Non-fat file:/usr/local/lib/libcryptopp.a is architecture: x86_64 i386

Please provide the output of the following command:

    nm -g /usr/local/lib/libcryptopp.a | c++filt | grep 
RandomPool::GenerateIntoBufferedTransformation | grep " T "

Please provide the link command you are using (produced by Xcode).

Jeff
 
On Thursday, February 19, 2015 at 3:38:07 AM UTC+5:30, Jeffrey Walton wrote:

>
>>
>> On Wednesday, February 18, 2015 at 1:31:07 PM UTC-5, Rajiv Poplai wrote:
>>>
>>> I created libcrypto.a of CCryptopp 5.6.1 on Mac OS 10.9 using 
>>> GNUmakefile.
>>> Subsequently when I link it in my project in XCode 5.1.1, I get the 
>>> following linker error.
>>>
>>> CryptoPP:RandomPool::GenerateIntoBufferedTransformation symbol not found.
>>>
>>> Can anybody help me with this issue.
>>>
>> Xcode uses LLVM's libc++ by default. By default, Crpyto++'s GNUmakefile 
>> omits CXXFLAGS += -std=libc++, so it uses GNU's libstdc++. The following is 
>> from around line 90:
>>
>> ifeq ($(UNAME),Darwin)
>>   AR = libtool
>>   ARFLAGS = -static -o
>>   CXX = c++
>>   IS_GCC2 = $(shell $(CXX) -v 2>&1 | $(EGREP) -c gcc-932)
>>   ifeq ($(IS_GCC2),1)
>>     CXXFLAGS += -fno-coalesce-templates -fno-coalesce-static-vtables
>>     LDLIBS += -lstdc++
>>     LDFLAGS += -flat_namespace -undefined suppress -m
>>   endif
>> endif
>>
>> So you will either need to:
>>
>>   (1) Change Xcode to use GNU's libstdc++
>>   (2) Rebuild Crypto++ to use LLVM's libc++
>>
>> To perform (1), change the setting in the Target's build settings.
>>
>> To perform (2), open the GNUmakefile and add CXXFLAGS += -std=libc++ 
>> after one of he Darwin tests (search for Darwin). And get rid of the line:
>>
>>     LDLIBS += -lstdc++
>>
>

-- 
-- 
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.

Reply via email to