I use the following compiler flags:
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O0 -Wall -W -Wunused-variable
-Wunused-parameter -Wunused-function -Wunused -Wno-system-headers -Wno-deprecated
-Woverloaded-virtual -Wwrite-strings -fprofile-arcs -ftest-coverage")
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -O0 -Wall -W -fprofile-arcs
-ftest-coverage")
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fprofile-arcs
-ftest-coverage")
SET(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -fprofile-arcs
-ftest-coverage")
SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -fprofile-arcs
-ftest-coverage")
I've also attached the CMakeLists.txt file which I use to compile it.
Here is the output after the project is configured:
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- Checking whether C compiler has -isysroot
-- Checking whether C compiler has -isysroot - yes
-- Checking whether C compiler supports OSX deployment target flag
-- Checking whether C compiler supports OSX deployment target flag - yes
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Checking whether CXX compiler has -isysroot
-- Checking whether CXX compiler has -isysroot - yes
-- Checking whether CXX compiler supports OSX deployment target flag
-- Checking whether CXX compiler supports OSX deployment target flag - yes
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
Best Regards
Am 23. Mai 2012 um 19:02 schrieb David Irvine <[email protected]>:
Compile flags and versions would really help. clang is very actively being developed just now. If you use libc++ and std=c++11 you need to make some changes. Otherwise you may be using pedantic flags or similar.
On Wed, May 23, 2012 at 5:59 PM, NoRulez <[email protected]> wrote:
Hello,
on windows and on linux crypto++ compiles fine.
But on mac os x lion i get compile errors.
Did i need to define something special to get it to work?
Here are the errors:
/.../source/misc.h:414:2: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits] /.../source/misc.h: In instantiation of 'std::string CryptoPP::IntToString(T, unsigned int) [with T = unsigned int; std::string = std::basic_string<char>]': /.../source/simple.h:42:131: required from here /.../source/misc.h:414:2: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits] In file included from /.../source/rijndael.h:8:0, from /.../source/aes.h:4, from /.../source/dll.h:11, from /.../source/dll.cpp:6: /.../source/secblock.h: In instantiation of 'CryptoPP::AllocatorWithCleanup<T, T_Align16>::pointer CryptoPP::AllocatorWithCleanup<T, T_Align16>::allocate(CryptoPP::AllocatorWithCleanup<T, T_Align16>::size_type, const void*) [with T = unsigned char; bool T_Align16 = false; CryptoPP::AllocatorWithCleanup<T, T_Align16>::pointer = unsigned char*; CryptoPP::AllocatorWithCleanup<T, T_Align16>::size_type = long unsigned int]': /.../source/secblock.h:129:29: required from here
/.../source/secblock.h:91:3: error: 'CheckSize' was not declared in this
scope, and no declarations were found by argument-dependent lookup at the point
of instantiation [-fpermissive]
/.../source/secblock.h:91:3: note: declarations in dependent base 'CryptoPP::AllocatorBase<unsigned char>' are not found by unqualified lookup /.../source/secblock.h:91:3: note: use 'this->CheckSize' instead /.../source/secblock.h: In instantiation of 'CryptoPP::AllocatorWithCleanup<T, T_Align16>::pointer CryptoPP::AllocatorWithCleanup<T, T_Align16>::allocate(CryptoPP::AllocatorWithCleanup<T, T_Align16>::size_type, const void*) [with T = short unsigned int; bool T_Align16 = false; CryptoPP::AllocatorWithCleanup<T, T_Align16>::pointer = short unsigned int*; CryptoPP::AllocatorWithCleanup<T, T_Align16>::size_type = long unsigned int]': /.../source/secblock.h:130:29: required from here
/.../source/algebra.h:51:16: warning: unused parameter 'source' [-Wunused-parameter] In file included from /.../source/algebra.h:282:0, from /.../source/modarith.h:9, from /.../source/pubkey.h:35, from /.../source/gfpcrypt.h:8, from /.../source/dh.h:7, from /.../source/dll.h:17, from /.../source/dll.cpp:6: /.../source/algebra.cpp: In instantiation of 'const T& CryptoPP::AbstractEuclideanDomain<T>::Gcd(const Element&, const Element&) const [with T = CryptoPP::Integer; CryptoPP::AbstractEuclideanDomain<T>::Element = CryptoPP::Integer]': /.../source/modarith.h:15:29: required from here
/.../source/algebra.cpp:61:2: error: 'Equal' was not declared in this
scope, and no declarations were found by argument-dependent lookup at the point
of instantiation [-fpermissive]
/.../source/algebra.cpp:61:2: note: declarations in dependent base
'CryptoPP::AbstractGroup<CryptoPP::Integer>' are not found by unqualified lookup
/.../source/algebra.cpp:61:2: note: use 'this->Equal' instead In file included from
/.../source/pubkey.h:36:0, from /.../source/gfpcrypt.h:8, from /.../source/dh.h:7, from
/.../source/dll.h:17, from /.../source/dll.cpp:6: /.../source/filters.h: In instantiation of 'size_t
CryptoPP::StringSinkTemplate<T>::Put2(const byte*, size_t, int, bool) [with T =
std::basic_string<char>; size_t = long unsigned int; byte = unsigned char]':
/.../source/filters.h:614:29: required from here /.../source/filters.h:597:9: warning: unused
parameter 'messageEnd' [-Wunused-parameter]
/.../source/algebra.h:210:7: warning: unused parameter 'rhs' [-Wunused-parameter] In file included from /.../source/dll.h:20:0, from /.../source/dll.cpp:6: /.../source/eccrypto.h: In instantiation of 'void CryptoPP::DL_GroupParameters_EC<EC>::Initialize(const EllipticCurve&, const Point&, const CryptoPP::Integer&, const CryptoPP::Integer&) [with EC = CryptoPP::ECP; CryptoPP::DL_GroupParameters_EC<EC>::EllipticCurve = CryptoPP::ECP; CryptoPP::DL_GroupParameters_EC<EC>::Point = CryptoPP::ECPPoint]': /.../source/eccrypto.h:263:29: required from here
/.../source/eccrypto.h:46:3: error: 'SetSubgroupGenerator' was not declared
in this scope, and no declarations were found by argument-dependent lookup at
the point of instantiation [-fpermissive]
/.../source/eccrypto.h:46:3: note: declarations in dependent base 'CryptoPP::DL_GroupParameters<CryptoPP::ECPPoint>' are not found by unqualified lookup /.../source/eccrypto.h:46:3: note: use 'this->SetSubgroupGenerator' instead In file included from /.../source/eccrypto.h:258:0, from /.../source/dll.h:20, from /.../source/dll.cpp:6: /.../source/eccrypto.cpp: In instantiation of 'void CryptoPP::DL_GroupParameters_EC<EC>::Initialize(const CryptoPP::OID&) [with EC = CryptoPP::ECP]': /.../source/eccrypto.h:263:29: required from here
/.../source/eccrypto.cpp:594:101: error: 'ExponentiateElement' was not
declared in this scope, and no declarations were found by argument-dependent
lookup at the point of instantiation [-fpermissive]
/.../source/eccrypto.cpp:594:101: note: declarations in dependent base 'CryptoPP::DL_GroupParameters<CryptoPP::ECPPoint>' are not found by unqualified lookup /.../source/eccrypto.cpp:594:101: note: use 'this->ExponentiateElement' instead In file included from /.../source/dll.h:20:0, from /.../source/dll.cpp:6: /.../source/eccrypto.h: In instantiation of 'void CryptoPP::DL_GroupParameters_EC<EC>::Initialize(const EllipticCurve&, const Point&, const CryptoPP::Integer&, const CryptoPP::Integer&) [with EC = CryptoPP::EC2N; CryptoPP::DL_GroupParameters_EC<EC>::EllipticCurve = CryptoPP::EC2N; CryptoPP::DL_GroupParameters_EC<EC>::Point = CryptoPP::EC2NPoint]': /.../source/eccrypto.h:264:29: required from here
/.../source/eccrypto.h:148:44: error: 'SetPublicElement' was not declared
in this scope, and no declarations were found by argument-dependent lookup at
the point of instantiation [-fpermissive]
/.../source/eccrypto.h:148:44: note: declarations in dependent base 'CryptoPP::DL_PublicKey<CryptoPP::ECPPoint>' are not found by unqualified lookup /.../source/eccrypto.h:148:44: note: use 'this->SetPublicElement' instead /.../source/eccrypto.h: In instantiation of 'void CryptoPP::DL_PublicKey_EC<EC>::Initialize(const EC&, const Element&, const CryptoPP::Integer&, const Element&) [with EC = CryptoPP::ECP; CryptoPP::DL_PublicKey_EC<EC>::Element = CryptoPP::ECPPoint]': /.../source/eccrypto.h:267:29: required from here
/.../source/eccrypto.h:169:4: error: 'GenerateRandom' was not declared in
this scope, and no declarations were found by argument-dependent lookup at the
point of instantiation [-fpermissive]
/.../source/eccrypto.h:169:4: note: declarations in dependent base
'CryptoPP::DL_PrivateKeyImpl<CryptoPP::DL_GroupParameters_EC<CryptoPP::ECP> >' are not found by unqualified
lookup /.../source/eccrypto.h:169:4: note: use 'this->GenerateRandom' instead /.../source/eccrypto.h: In instantiation
of 'void CryptoPP::DL_PrivateKey_EC<EC>::Initialize(CryptoPP::RandomNumberGenerator&, const EC&, const
Element&, const CryptoPP::Integer&) [with EC = CryptoPP::ECP; CryptoPP::DL_PrivateKey_EC<EC>::Element =
CryptoPP::ECPPoint]': /.../source/eccrypto.h:271:29: required from here
Best Regards
NoRulez
--
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 "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 "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.
CMAKE_MINIMUM_REQUIRED(VERSION 2.8 FATAL_ERROR)
PROJECT(cryptopp)
#FILE(GLOB CRYPTOPP_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp")
#FILE(GLOB CRYPTOPP_HEADERS "${CMAKE_CURRENT_SOURCE_DIR}/*.h")
if(WIN32)
add_definitions(-DCRYPTOPP_EXPORTS)
add_definitions(-DCRYPTOPP_ENABLE_COMPLIANCE_WITH_FIPS_140_2=1)
else(WIN32)
if(APPLE)
add_definitions(-DCRYPTOPP_DISABLE_ASM)
add_definitions(-DCRYPTOPP_DISABLE_SSE2)
endif(APPLE)
endif(WIN32)
set(CRYPTOPP_LIB_HEADERS
3way.h
adler32.h
aes.h
algebra.h
algparam.h
arc4.h
argnames.h
asn.h
authenc.h
base32.h
base64.h
basecode.h
#bench.h
blowfish.h
blumshub.h
camellia.h
cast.h
cbcmac.h
ccm.h
channels.h
cmac.h
config.h
cpu.h
crc.h
cryptlib.h
default.h
des.h
dh.h
dh2.h
#dll.h
dmac.h
dsa.h
eax.h
ec2n.h
eccrypto.h
ecp.h
elgamal.h
emsa2.h
eprecomp.h
esign.h
#factory.h
files.h
filters.h
fips140.h
fltrimpl.h
gcm.h
gf256.h
gf2n.h
gf2_32.h
gfpcrypt.h
gost.h
gzip.h
hex.h
hmac.h
hrtimer.h
ida.h
idea.h
integer.h
iterhash.h
lubyrack.h
luc.h
mars.h
md2.h
md4.h
md5.h
mdc.h
misc.h
modarith.h
modes.h
modexppc.h
mqueue.h
mqv.h
nbtheory.h
network.h
nr.h
oaep.h
oids.h
osrng.h
panama.h
pch.h
pkcspad.h
polynomi.h
pssr.h
pubkey.h
pwdbased.h
queue.h
rabin.h
randpool.h
rc2.h
rc5.h
rc6.h
#resource.h
rijndael.h
ripemd.h
rng.h
rsa.h
rw.h
safer.h
salsa.h
seal.h
secblock.h
seckey.h
seed.h
serpent.h
#serpentp.h
sha.h
shacal2.h
shark.h
simple.h
skipjack.h
smartptr.h
socketft.h
sosemanuk.h
square.h
stdcpp.h
strciphr.h
tea.h
tiger.h
trdlocal.h
trunhash.h
ttmac.h
twofish.h
#validate.h
vmac.h
wait.h
wake.h
whrlpool.h
winpipes.h
words.h
xtr.h
xtrcrypt.h
zdeflate.h
zinflate.h
zlib.h
)
set(CRYPTOPP_LIB_SOURCES
3way.cpp
adhoc.cpp.proto
adler32.cpp
algebra.cpp
algparam.cpp
arc4.cpp
asn.cpp
authenc.cpp
base32.cpp
base64.cpp
basecode.cpp
#bench.cpp
#bench2.cpp
bfinit.cpp
blowfish.cpp
blumshub.cpp
camellia.cpp
cast.cpp
casts.cpp
cbcmac.cpp
ccm.cpp
channels.cpp
cmac.cpp
cpu.cpp
crc.cpp
cryptlib.cpp
#cryptlib_bds.cpp
#datatest.cpp
default.cpp
des.cpp
dessp.cpp
dh.cpp
dh2.cpp
dll.cpp
#dlltest.cpp
dsa.cpp
eax.cpp
ec2n.cpp
eccrypto.cpp
ecp.cpp
elgamal.cpp
emsa2.cpp
eprecomp.cpp
esign.cpp
files.cpp
filters.cpp
fips140.cpp
#fipsalgt.cpp
fipstest.cpp
gcm.cpp
gf256.cpp
gf2n.cpp
gf2_32.cpp
gfpcrypt.cpp
gost.cpp
gzip.cpp
hex.cpp
hmac.cpp
hrtimer.cpp
ida.cpp
idea.cpp
integer.cpp
iterhash.cpp
luc.cpp
mars.cpp
marss.cpp
md2.cpp
md4.cpp
md5.cpp
misc.cpp
modes.cpp
mqueue.cpp
mqv.cpp
nbtheory.cpp
network.cpp
oaep.cpp
osrng.cpp
panama.cpp
pch.cpp
pkcspad.cpp
polynomi.cpp
pssr.cpp
pubkey.cpp
queue.cpp
rabin.cpp
randpool.cpp
rc2.cpp
rc5.cpp
rc6.cpp
rdtables.cpp
#regtest.cpp
rijndael.cpp
ripemd.cpp
rng.cpp
rsa.cpp
rw.cpp
safer.cpp
salsa.cpp
seal.cpp
seed.cpp
serpent.cpp
sha.cpp
shacal2.cpp
shark.cpp
sharkbox.cpp
simple.cpp
skipjack.cpp
socketft.cpp
sosemanuk.cpp
square.cpp
squaretb.cpp
strciphr.cpp
tea.cpp
#test.cpp
tftables.cpp
tiger.cpp
tigertab.cpp
trdlocal.cpp
ttmac.cpp
twofish.cpp
#validat1.cpp
#validat2.cpp
#validat3.cpp
vmac.cpp
wait.cpp
wake.cpp
whrlpool.cpp
winpipes.cpp
xtr.cpp
xtrcrypt.cpp
zdeflate.cpp
zinflate.cpp
zlib.cpp
)
ADD_LIBRARY(cryptlib ${CRYPTOPP_LIB_HEADERS} ${CRYPTOPP_LIB_SOURCES})
if(WIN32)
target_link_libraries(cryptlib odbc32 odbccp32 ws2_32)
endif(WIN32)
set(CRYPTOPP_TEST_HEADERS
bench.h
factory.h
validate.h
)
set(CRYPTOPP_TEST_SOURCES
adhoc.cpp
bench.cpp
bench2.cpp
datatest.cpp
dlltest.cpp
fipsalgt.cpp
regtest.cpp
test.cpp
validat1.cpp
validat2.cpp
validat3.cpp
)
ADD_EXECUTABLE(cryptest ${CRYPTOPP_TEST_HEADERS} ${CRYPTOPP_TEST_SOURCES})
target_link_libraries(cryptest cryptlib)