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.