09-18-2012 03:37 PM
Yesterday I tried to build p7zip (p7zip is the command line version of 7-Zip for Unix/Linux, made by an independent developer.) located here http://sourceforge.net/projects/p7zip/
It's makefile based project, already ported to old qnx 6.4/6.3 with this makefile
################################################### # makefile.machine for "7z , 7za , 7zr , 7zCon.sfx " : # tested with p7zip-4.47_beta on qnx-6.3.0 sp3 x86 target OPTFLAGS=-O ALLFLAGS=${OPTFLAGS} -s \ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE \ -DNDEBUG -D_REENTRANT -DENV_UNIX \ $(LOCAL_FLAGS) CXX=QCC -V3.3.5,gcc_ntox86 $(ALLFLAGS) CC=qcc -V3.3.5,gcc_ntox86 $(ALLFLAGS) LINK_SHARED=-shared #LOCAL_LIBS=-lpthread #LOCAL_LIBS_DLL=$(LOCAL_LIBS) -ldl LOCAL_LIBS_DLL=$(LOCAL_LIBS) OBJ_CRC32=$(OBJ_CRC32_C)
I changed these two lines to match NDK 2.0.0 (-V4.4.2)
CXX=QCC -V3.3.5,gcc_ntox86 $(ALLFLAGS) CC=qcc -V3.3.5,gcc_ntox86 $(ALLFLAGS)
Here is quite big error log of what I got so far
PpmdEncoder.o:(.eh_frame+0x1fb): undefined reference to `__gxx_personality_v0' PpmdRegister.o: In function `CreateCodecOut()': PpmdRegister.cpp:(.text+0x28): undefined reference to `operator new(unsigned int )' PpmdRegister.cpp:(.text+0x3e): undefined reference to `operator delete(void*)' PpmdRegister.o: In function `CreateCodec()': PpmdRegister.cpp:(.text+0x6d): undefined reference to `operator new(unsigned int )' PpmdRegister.cpp:(.text+0x124): undefined reference to `operator delete(void*)' PpmdRegister.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0' PpmdRegister.o:(.eh_frame+0xf3): undefined reference to `__gxx_personality_v0' PpmdZip.o: In function `NCompress::NPpmdZip::CEncoder::~CEncoder()': PpmdZip.cpp:(.text+0x49e): undefined reference to `operator delete(void*)' PpmdZip.o: In function `NCompress::NPpmdZip::CDecoder::~CDecoder()': PpmdZip.cpp:(.text+0x8ee): undefined reference to `operator delete(void*)' PpmdZip.o:(.rodata._ZTIN9NCompress8NPpmdZip8CEncoderE[_ZTIN9NCompress8NPpmdZip8C EncoderE]+0x0): undefined reference to `vtable for __cxxabiv1::__vmi_class_type_ info' PpmdZip.o:(.rodata._ZTIN9NCompress8NPpmdZip8CDecod erE[_ZTIN9NCompress8NPpmdZip8C DecoderE]+0x0): undefined reference to `vtable for __cxxabiv1::__vmi_class_type_ info' PpmdZip.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0' PpmdZip.o:(.eh_frame+0x1c7): undefined reference to `__gxx_personality_v0' QuantumDecoder.o: In function `NCompress::NQuantum::CDecoder::Code(ISequentialIn Stream*, ISequentialOutStream*, unsigned long long const*, unsigned long long co nst*, ICompressProgressInfo*)': QuantumDecoder.cpp:(.text+0x12e5): undefined reference to `__cxa_begin_catch' QuantumDecoder.cpp:(.text+0x12ec): undefined reference to `__cxa_end_catch' QuantumDecoder.cpp:(.text+0x12f6): undefined reference to `__cxa_begin_catch' QuantumDecoder.cpp:(.text+0x12fd): undefined reference to `__cxa_end_catch' QuantumDecoder.cpp:(.text+0x1307): undefined reference to `__cxa_begin_catch' QuantumDecoder.cpp:(.text+0x130c): undefined reference to `__cxa_end_catch' QuantumDecoder.o: In function `NCompress::NQuantum::CDecoder::~CDecoder()': QuantumDecoder.cpp:(.text._ZN9NCompress8NQuantum8C DecoderD0Ev[_ZN9NCompress8NQua ntum8CDecoderD0Ev]+0xdd): undefined reference to `operator delete(void*)' QuantumDecoder.o:(.rodata._ZTIN9NCompress8NQuantum 8CDecoderE[_ZTIN9NCompress8NQu antum8CDecoderE]+0x0): undefined reference to `vtable for __cxxabiv1::__vmi_clas s_type_info' QuantumDecoder.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0' QuantumDecoder.o:(.eh_frame+0x1a3): undefined reference to `__gxx_personality_v0 ' ShrinkDecoder.o: In function `NCompress::NShrink::CDecoder::Code(ISequentialInS t ream*, ISequentialOutStream*, unsigned long long const*, unsigned long long cons t*, ICompressProgressInfo*)': ShrinkDecoder.cpp:(.text+0x761): undefined reference to `__cxa_begin_catch' ShrinkDecoder.cpp:(.text+0x768): undefined reference to `__cxa_end_catch' ShrinkDecoder.cpp:(.text+0x772): undefined reference to `__cxa_begin_catch' ShrinkDecoder.cpp:(.text+0x779): undefined reference to `__cxa_end_catch' ShrinkDecoder.cpp:(.text+0x783): undefined reference to `__cxa_begin_catch' ShrinkDecoder.cpp:(.text+0x788): undefined reference to `__cxa_end_catch' ShrinkDecoder.o: In function `NCompress::NShrink::CDecoder::~CDecoder()': ShrinkDecoder.cpp:(.text._ZN9NCompress7NShrink8CDe coderD0Ev[_ZN9NCompress7NShrin k8CDecoderD0Ev]+0x13): undefined reference to `operator delete(void*)' ShrinkDecoder.o:(.rodata._ZTIN9NCompress7NShrink8C DecoderE[_ZTIN9NCompress7NShri nk8CDecoderE]+0x0): undefined reference to `vtable for __cxxabiv1::__vmi_class_t ype_info' ShrinkDecoder.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0' ShrinkDecoder.o:(.eh_frame+0x12f): undefined reference to `__gxx_personality_v0' ZDecoder.o: In function `NCompress::NZ::CDecoder::~CDecoder()': ZDecoder.cpp:(.text+0xbf): undefined reference to `operator delete(void*)' ZDecoder.o: In function `NCompress::NZ::CDecoder::Code(ISequentialInStream *, ISe quentialOutStream*, unsigned long long const*, unsigned long long const*, ICompr essProgressInfo*)': ZDecoder.cpp:(.text+0x7ef): undefined reference to `__cxa_begin_catch' ZDecoder.cpp:(.text+0x7f6): undefined reference to `__cxa_end_catch' ZDecoder.cpp:(.text+0x800): undefined reference to `__cxa_begin_catch' ZDecoder.cpp:(.text+0x807): undefined reference to `__cxa_end_catch' ZDecoder.cpp:(.text+0x811): undefined reference to `__cxa_begin_catch' ZDecoder.cpp:(.text+0x816): undefined reference to `__cxa_end_catch' ZDecoder.o:(.rodata._ZTIN9NCompress2NZ8CDecoderE[_ ZTIN9NCompress2NZ8CDecoderE]+0 x0): undefined reference to `vtable for __cxxabiv1::__vmi_class_type_info' ZDecoder.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0' ZDecoder.o:(.eh_frame+0x167): undefined reference to `__gxx_personality_v0' 7zAes.o: In function `NCrypto::NSevenZ::CEncoder::CreateFilter()': 7zAes.cpp:(.text+0x338): undefined reference to `operator new(unsigned int)' 7zAes.cpp:(.text+0x34e): undefined reference to `operator delete(void*)' 7zAes.o: In function `NCrypto::NSevenZ::CDecoder::CreateFilter()': 7zAes.cpp:(.text+0x6be): undefined reference to `operator new(unsigned int)' 7zAes.cpp:(.text+0x6d4): undefined reference to `operator delete(void*)' 7zAes.o: In function `NCrypto::NSevenZ::CBaseCoder::CryptoSetPassword(u nsigned c har const*, unsigned int)': 7zAes.cpp:(.text+0x73f): undefined reference to `operator new[](unsigned int)' 7zAes.cpp:(.text+0x772): undefined reference to `operator delete[](void*)' 7zAes.o: In function `NCrypto::NSevenZ::CKeyInfoCache::Find(NCrypto::NS evenZ::CK eyInfo&)': 7zAes.cpp:(.text+0x80a): undefined reference to `operator new(unsigned int)' 7zAes.cpp:(.text+0x85c): undefined reference to `operator new[](unsigned int)' 7zAes.cpp:(.text+0x89c): undefined reference to `operator delete[](void*)' 7zAes.cpp:(.text+0x94f): undefined reference to `operator delete(void*)' 7zAes.cpp:(.text+0x986): undefined reference to `operator delete[](void*)' 7zAes.cpp:(.text+0x98e): undefined reference to `operator delete(void*)' 7zAes.o: In function `NCrypto::NSevenZ::CKeyInfoCache::Add(NCrypto::NSe venZ::CKe yInfo&)': 7zAes.cpp:(.text+0xa18): undefined reference to `operator new(unsigned int)' 7zAes.cpp:(.text+0xa65): undefined reference to `operator new[](unsigned int)' 7zAes.cpp:(.text+0xa98): undefined reference to `operator delete[](void*)' 7zAes.cpp:(.text+0xb14): undefined reference to `operator delete(void*)' 7zAes.o: In function `CObjectVector<NCrypto::NSevenZ::CKeyInfo>::~CObje ctVector( )': 7zAes.cpp:(.text._ZN13CObjectVectorIN7NCrypto7NSev enZ8CKeyInfoEED0Ev[_ZN13CObjec tVectorIN7NCrypto7NSevenZ8CKeyInfoEED0Ev]+0x49): undefined reference to `operato r delete(void*)' 7zAes.o: In function `CObjectVector<NCrypto::NSevenZ::CKeyInfo>::Delete (int, int )': 7zAes.cpp:(.text._ZN13CObjectVectorIN7NCrypto7NSev enZ8CKeyInfoEE6DeleteEii[_ZN13 CObjectVectorIN7NCrypto7NSevenZ8CKeyInfoEE6DeleteE ii]+0x4f): undefined reference to `operator delete[](void*)' 7zAes.cpp:(.text._ZN13CObjectVectorIN7NCrypto7NSev enZ8CKeyInfoEE6DeleteEii[_ZN13 CObjectVectorIN7NCrypto7NSevenZ8CKeyInfoEE6DeleteE ii]+0x57): undefined reference to `operator delete(void*)' 7zAes.o: In function `NCrypto::NSevenZ::CBase::~CBase()': 7zAes.cpp:(.text._ZN7NCrypto7NSevenZ5CBaseD2Ev[_ZN 7NCrypto7NSevenZ5CBaseD2Ev]+0x 21): undefined reference to `operator delete[](void*)' 7zAes.o: In function `NCrypto::NSevenZ::CEncoder::~CEncoder()': 7zAes.cpp:(.text._ZN7NCrypto7NSevenZ8CEncoderD0Ev[ _ZN7NCrypto7NSevenZ8CEncoderD0 Ev]+0x82): undefined reference to `operator delete[](void*)' 7zAes.cpp:(.text._ZN7NCrypto7NSevenZ8CEncoderD0Ev[ _ZN7NCrypto7NSevenZ8CEncoderD0 Ev]+0xed): undefined reference to `operator delete(void*)' 7zAes.o: In function `NCrypto::NSevenZ::CBaseCoder::~CBaseCoder()': 7zAes.cpp:(.text._ZN7NCrypto7NSevenZ10CBaseCoderD0 Ev[_ZN7NCrypto7NSevenZ10CBaseC oderD0Ev]+0x5c): undefined reference to `operator delete[](void*)' 7zAes.cpp:(.text._ZN7NCrypto7NSevenZ10CBaseCoderD0 Ev[_ZN7NCrypto7NSevenZ10CBaseC oderD0Ev]+0xbe): undefined reference to `operator delete(void*)' 7zAes.o: In function `NCrypto::NSevenZ::CBaseCoder::~CBaseCoder()': 7zAes.cpp:(.text._ZN7NCrypto7NSevenZ10CBaseCoderD1 Ev[_ZN7NCrypto7NSevenZ10CBaseC oderD1Ev]+0x5c): undefined reference to `operator delete[](void*)' 7zAes.o: In function `NCrypto::NSevenZ::CDecoder::~CDecoder()': 7zAes.cpp:(.text._ZN7NCrypto7NSevenZ8CDecoderD1Ev[ _ZN7NCrypto7NSevenZ8CDecoderD1 Ev]+0x6c): undefined reference to `operator delete[](void*)' 7zAes.o: In function `NCrypto::NSevenZ::CEncoder::~CEncoder()': 7zAes.cpp:(.text._ZN7NCrypto7NSevenZ8CEncoderD1Ev[ _ZN7NCrypto7NSevenZ8CEncoderD1 Ev]+0x80): undefined reference to `operator delete[](void*)' 7zAes.o: In function `NCrypto::NSevenZ::CDecoder::~CDecoder()': 7zAes.cpp:(.text._ZN7NCrypto7NSevenZ8CDecoderD0Ev[ _ZN7NCrypto7NSevenZ8CDecoderD0 Ev]+0x6e): undefined reference to `operator delete[](void*)' 7zAes.cpp:(.text._ZN7NCrypto7NSevenZ8CDecoderD0Ev[ _ZN7NCrypto7NSevenZ8CDecoderD0 Ev]+0xd9): undefined reference to `operator delete(void*)' 7zAes.o:(.rodata._ZTVN7NCrypto7NSevenZ10CBaseCoder E[_ZTVN7NCrypto7NSevenZ10CBase CoderE]+0x8): undefined reference to `__cxa_pure_virtual' 7zAes.o:(.rodata._ZTVN7NCrypto7NSevenZ10CBaseCoder E[_ZTVN7NCrypto7NSevenZ10CBase CoderE]+0xc): undefined reference to `__cxa_pure_virtual' 7zAes.o:(.rodata._ZTVN7NCrypto7NSevenZ10CBaseCoder E[_ZTVN7NCrypto7NSevenZ10CBase CoderE]+0x10): undefined reference to `__cxa_pure_virtual' 7zAes.o:(.rodata._ZTVN7NCrypto7NSevenZ10CBaseCoder E[_ZTVN7NCrypto7NSevenZ10CBase CoderE]+0x24): undefined reference to `__cxa_pure_virtual' 7zAes.o:(.rodata._ZTVN7NCrypto7NSevenZ10CBaseCoder E[_ZTVN7NCrypto7NSevenZ10CBase CoderE]+0x34): undefined reference to `__cxa_pure_virtual' 7zAes.o:(.rodata._ZTVN7NCrypto7NSevenZ10CBaseCoder E[_ZTVN7NCrypto7NSevenZ10CBase CoderE]+0x38): more undefined references to `__cxa_pure_virtual' follow 7zAes.o:(.rodata._ZTIN7NCrypto7NSevenZ8CDecoderE[_ ZTIN7NCrypto7NSevenZ8CDecoderE ]+0x0): undefined reference to `vtable for __cxxabiv1::__vmi_class_type_info' 7zAes.o:(.rodata._ZTIN7NCrypto7NSevenZ8CEncoderE[_ ZTIN7NCrypto7NSevenZ8CEncoderE ]+0x0): undefined reference to `vtable for __cxxabiv1::__vmi_class_type_info' 7zAes.o:(.rodata._ZTIN7NCrypto7NSevenZ10CBaseCoder E[_ZTIN7NCrypto7NSevenZ10CBase CoderE]+0x0): undefined reference to `vtable for __cxxabiv1::__vmi_class_type_in fo' 7zAes.o:(.rodata._ZTIN7NCrypto7NSevenZ5CBaseE[_ZTI N7NCrypto7NSevenZ5CBaseE]+0x0) : undefined reference to `vtable for __cxxabiv1::__class_type_info' 7zAes.o:(.rodata._ZTI13CObjectVectorIN7NCrypto7NSe venZ8CKeyInfoEE[_ZTI13CObjectV ectorIN7NCrypto7NSevenZ8CKeyInfoEE]+0x0): undefined reference to `vtable for __c xxabiv1::__si_class_type_info' 7zAes.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0' 7zAes.o:(.eh_frame+0x31b): undefined reference to `__gxx_personality_v0' 7zAesRegister.o: In function `CreateCodec()': 7zAesRegister.cpp:(.text+0x2b): undefined reference to `operator new(unsigned in t)' 7zAesRegister.cpp:(.text+0x99): undefined reference to `operator delete(void*)' 7zAesRegister.o: In function `CreateCodecOut()': 7zAesRegister.cpp:(.text+0xbc): undefined reference to `operator new(unsigned in t)' 7zAesRegister.cpp:(.text+0x134): undefined reference to `operator delete(void*)' 7zAesRegister.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0' 7zAesRegister.o:(.eh_frame+0x19b): undefined reference to `__gxx_personality_v0' HmacSha1.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0' MyAes.o: In function `NCrypto::CAesCbcCoder::~CAesCbcCoder()': MyAes.cpp:(.text._ZN7NCrypto12CAesCbcCoderD0Ev[_ZN 7NCrypto12CAesCbcCoderD0Ev]+0x 22): undefined reference to `operator delete(void*)' MyAes.o: In function `NCrypto::CAesCbcEncoder::~CAesCbcEncoder()': MyAes.cpp:(.text._ZN7NCrypto14CAesCbcEncoderD0Ev[_ ZN7NCrypto14CAesCbcEncoderD0Ev ]+0x22): undefined reference to `operator delete(void*)' MyAes.o:(.rodata._ZTIN7NCrypto12CAesCbcCoderE[_ZTI N7NCrypto12CAesCbcCoderE]+0x0) : undefined reference to `vtable for __cxxabiv1::__vmi_class_type_info' MyAes.o:(.rodata._ZTIN7NCrypto14CAesCbcEncoderE[_Z TIN7NCrypto14CAesCbcEncoderE]+ 0x0): undefined reference to `vtable for __cxxabiv1::__si_class_type_info' MyAes.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0' Pbkdf2HmacSha1.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0' RandGen.o:(.eh_frame+0x13): undefined reference to `__gxx_personality_v0' RandGen.o:(.eh_frame+0x72): undefined reference to `__gxx_personality_v0' Sha1.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0' WzAes.o: In function `NCrypto::NWzAes::CBaseCoder::CryptoSetPassword(un signed ch ar const*, unsigned int)': WzAes.cpp:(.text+0x5c9): undefined reference to `operator new[](unsigned int)' WzAes.cpp:(.text+0x5fc): undefined reference to `operator delete[](void*)' WzAes.o: In function `NCrypto::NWzAes::CDecoder::~CDecoder()': WzAes.cpp:(.text._ZN7NCrypto6NWzAes8CDecoderD1Ev[_ ZN7NCrypto6NWzAes8CDecoderD1Ev ]+0x45): undefined reference to `operator delete[](void*)' WzAes.o: In function `NCrypto::NWzAes::CBaseCoder::~CBaseCoder()': WzAes.cpp:(.text._ZN7NCrypto6NWzAes10CBaseCoderD0E v[_ZN7NCrypto6NWzAes10CBaseCod erD0Ev]+0x31): undefined reference to `operator delete[](void*)' WzAes.cpp:(.text._ZN7NCrypto6NWzAes10CBaseCoderD0E v[_ZN7NCrypto6NWzAes10CBaseCod erD0Ev]+0x46): undefined reference to `operator delete(void*)' WzAes.o: In function `NCrypto::NWzAes::CBaseCoder::~CBaseCoder()': WzAes.cpp:(.text._ZN7NCrypto6NWzAes10CBaseCoderD1E v[_ZN7NCrypto6NWzAes10CBaseCod erD1Ev]+0x31): undefined reference to `operator delete[](void*)' WzAes.o: In function `NCrypto::NWzAes::CEncoder::~CEncoder()': WzAes.cpp:(.text._ZN7NCrypto6NWzAes8CEncoderD0Ev[_ ZN7NCrypto6NWzAes8CEncoderD0Ev ]+0x38): undefined reference to `operator delete[](void*)' WzAes.cpp:(.text._ZN7NCrypto6NWzAes8CEncoderD0Ev[_ ZN7NCrypto6NWzAes8CEncoderD0Ev ]+0x4d): undefined reference to `operator delete(void*)' WzAes.o: In function `NCrypto::NWzAes::CEncoder::~CEncoder()': WzAes.cpp:(.text._ZN7NCrypto6NWzAes8CEncoderD1Ev[_ ZN7NCrypto6NWzAes8CEncoderD1Ev ]+0x31): undefined reference to `operator delete[](void*)' WzAes.o: In function `NCrypto::NWzAes::CDecoder::~CDecoder()': WzAes.cpp:(.text._ZN7NCrypto6NWzAes8CDecoderD0Ev[_ ZN7NCrypto6NWzAes8CDecoderD0Ev ]+0x4c): undefined reference to `operator delete[](void*)' WzAes.cpp:(.text._ZN7NCrypto6NWzAes8CDecoderD0Ev[_ ZN7NCrypto6NWzAes8CDecoderD0Ev ]+0x61): undefined reference to `operator delete(void*)' WzAes.o:(.rodata._ZTVN7NCrypto6NWzAes10CBaseCoderE [_ZTVN7NCrypto6NWzAes10CBaseCo derE]+0x8): undefined reference to `__cxa_pure_virtual' WzAes.o:(.rodata._ZTVN7NCrypto6NWzAes10CBaseCoderE [_ZTVN7NCrypto6NWzAes10CBaseCo derE]+0xc): undefined reference to `__cxa_pure_virtual' WzAes.o:(.rodata._ZTVN7NCrypto6NWzAes10CBaseCoderE [_ZTVN7NCrypto6NWzAes10CBaseCo derE]+0x10): undefined reference to `__cxa_pure_virtual' WzAes.o:(.rodata._ZTVN7NCrypto6NWzAes10CBaseCoderE [_ZTVN7NCrypto6NWzAes10CBaseCo derE]+0x20): undefined reference to `__cxa_pure_virtual' WzAes.o:(.rodata._ZTVN7NCrypto6NWzAes10CBaseCoderE [_ZTVN7NCrypto6NWzAes10CBaseCo derE]+0x30): undefined reference to `__cxa_pure_virtual' WzAes.o:(.rodata._ZTVN7NCrypto6NWzAes10CBaseCoderE [_ZTVN7NCrypto6NWzAes10CBaseCo derE]+0x34): more undefined references to `__cxa_pure_virtual' follow WzAes.o:(.rodata._ZTIN7NCrypto6NWzAes8CDecoderE[_Z TIN7NCrypto6NWzAes8CDecoderE]+ 0x0): undefined reference to `vtable for __cxxabiv1::__vmi_class_type_info' WzAes.o:(.rodata._ZTIN7NCrypto6NWzAes8CEncoderE[_Z TIN7NCrypto6NWzAes8CEncoderE]+ 0x0): undefined reference to `vtable for __cxxabiv1::__si_class_type_info' WzAes.o:(.rodata._ZTIN7NCrypto6NWzAes10CBaseCoderE [_ZTIN7NCrypto6NWzAes10CBaseCo derE]+0x0): undefined reference to `vtable for __cxxabiv1::__vmi_class_type_info ' WzAes.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0' ZipCrypto.o: In function `NCrypto::NZip::CCipher::~CCipher()': ZipCrypto.cpp:(.text._ZN7NCrypto4NZip7CCipherD0Ev[ _ZN7NCrypto4NZip7CCipherD0Ev]+ 0x22): undefined reference to `operator delete(void*)' ZipCrypto.o: In function `NCrypto::NZip::CEncoder::~CEncoder()': ZipCrypto.cpp:(.text._ZN7NCrypto4NZip8CEncoderD0Ev [_ZN7NCrypto4NZip8CEncoderD0Ev ]+0x22): undefined reference to `operator delete(void*)' ZipCrypto.o: In function `NCrypto::NZip::CDecoder::~CDecoder()': ZipCrypto.cpp:(.text._ZN7NCrypto4NZip8CDecoderD0Ev [_ZN7NCrypto4NZip8CDecoderD0Ev ]+0x22): undefined reference to `operator delete(void*)' ZipCrypto.o:(.rodata._ZTVN7NCrypto4NZip7CCipherE[_ ZTVN7NCrypto4NZip7CCipherE]+0x 8): undefined reference to `__cxa_pure_virtual' ZipCrypto.o:(.rodata._ZTVN7NCrypto4NZip7CCipherE[_ ZTVN7NCrypto4NZip7CCipherE]+0x c): undefined reference to `__cxa_pure_virtual' ZipCrypto.o:(.rodata._ZTVN7NCrypto4NZip7CCipherE[_ ZTVN7NCrypto4NZip7CCipherE]+0x 10): undefined reference to `__cxa_pure_virtual' ZipCrypto.o:(.rodata._ZTVN7NCrypto4NZip7CCipherE[_ ZTVN7NCrypto4NZip7CCipherE]+0x 20): undefined reference to `__cxa_pure_virtual' ZipCrypto.o:(.rodata._ZTVN7NCrypto4NZip7CCipherE[_ ZTVN7NCrypto4NZip7CCipherE]+0x 30): undefined reference to `__cxa_pure_virtual' ZipCrypto.o:(.rodata._ZTVN7NCrypto4NZip7CCipherE[_ ZTVN7NCrypto4NZip7CCipherE]+0x 34): more undefined references to `__cxa_pure_virtual' follow ZipCrypto.o:(.rodata._ZTIN7NCrypto4NZip8CDecoderE[ _ZTIN7NCrypto4NZip8CDecoderE]+ 0x0): undefined reference to `vtable for __cxxabiv1::__si_class_type_info' ZipCrypto.o:(.rodata._ZTIN7NCrypto4NZip8CEncoderE[ _ZTIN7NCrypto4NZip8CEncoderE]+ 0x0): undefined reference to `vtable for __cxxabiv1::__si_class_type_info' ZipCrypto.o:(.rodata._ZTIN7NCrypto4NZip7CCipherE[_ ZTIN7NCrypto4NZip7CCipherE]+0x 0): undefined reference to `vtable for __cxxabiv1::__vmi_class_type_info' ZipCrypto.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0' ZipStrong.o: In function `NCrypto::NZipStrong::CDecoder::ReadHeader(ISequen tialI nStream*, unsigned int, unsigned long long)': ZipStrong.cpp:(.text+0x531): undefined reference to `operator delete[](void*)' ZipStrong.cpp:(.text+0x558): undefined reference to `operator new[](unsigned int )' ZipStrong.cpp:(.text+0x598): undefined reference to `operator delete[](void*)' ZipStrong.o: In function `NCrypto::NZipStrong::CBaseCoder::~CBaseCoder()': ZipStrong.cpp:(.text._ZN7NCrypto10NZipStrong10CBas eCoderD1Ev[_ZN7NCrypto10NZipSt rong10CBaseCoderD1Ev]+0x4b): undefined reference to `operator delete[](void*)' ZipStrong.o: In function `NCrypto::NZipStrong::CBaseCoder::~CBaseCoder()': ZipStrong.cpp:(.text._ZN7NCrypto10NZipStrong10CBas eCoderD0Ev[_ZN7NCrypto10NZipSt rong10CBaseCoderD0Ev]+0x4b): undefined reference to `operator delete[](void*)' ZipStrong.cpp:(.text._ZN7NCrypto10NZipStrong10CBas eCoderD0Ev[_ZN7NCrypto10NZipSt rong10CBaseCoderD0Ev]+0x6a): undefined reference to `operator delete(void*)' ZipStrong.o:(.rodata._ZTVN7NCrypto10NZipStrong10CB aseCoderE[_ZTVN7NCrypto10NZipS trong10CBaseCoderE]+0x5c): undefined reference to `__cxa_pure_virtual' ZipStrong.o:(.rodata._ZTVN7NCrypto10NZipStrong10CB aseCoderE[_ZTVN7NCrypto10NZipS trong10CBaseCoderE]+0x60): undefined reference to `__cxa_pure_virtual' ZipStrong.o:(.rodata._ZTVN7NCrypto10NZipStrong10CB aseCoderE[_ZTVN7NCrypto10NZipS trong10CBaseCoderE]+0x64): undefined reference to `__cxa_pure_virtual' ZipStrong.o:(.rodata._ZTIN7NCrypto10NZipStrong10CB aseCoderE[_ZTIN7NCrypto10NZipS trong10CBaseCoderE]+0x0): undefined reference to `vtable for __cxxabiv1::__vmi_c lass_type_info' ZipStrong.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0' cc: C:/bbndk-2.0.0/host/win32/x86/usr/bin/ntox86-ld caught signal 1 make[1]: *** [../../../../bin/7za] Error 1 make[1]: Leaving directory `D:/Downloads/p7zip_9.20.1/CPP/7zip/Bundles/Alone' make: *** [7za] Error 2
Can somebody point me what I'm doing wrong ?
Solved! Go to Solution.
09-20-2012 10:24 AM
Hi,
Are you building using Momentics? Are you sure you are importing the project in the correct fashion? (makefile project, cascades project, etc..)
Martin
09-20-2012 12:20 PM
09-21-2012 04:23 PM
Were you trying to use qcc on linux to cross compile the p7zip targeting for qnx on playbook, right?
I tested it to compile it with NDK on Mac using the following steps:
1) change the makefile.qnx_shared.so ( you can choose the proper makefile for your own need)
CXX=QCC -Vgcc_ntoarmv7le $(ALLFLAGS)
CC=qcc -Vgcc_ntoarmv7le $(ALLFLAGS)
2) from the console:
source /<path to your NDK installtaion dir>/bbndk-env.sh
cp makefile.qnx_shared.so makefile.machine
make
Compilation was successful, but I did not test the binary.
Let me know if these steps help if you are doing cross compiling on linux
09-21-2012 04:52 PM
09-24-2012 03:15 PM - edited 09-24-2012 03:16 PM
Ok, I got a chance to try the p7zip build with NDK on Windows.
It looks like the original p7zip makefiles were tested on Unix/Linux system.
The qcc setting from that makefile was not able to detect the cross compliling tool chain properly, e.g.: was not able to link with the proper libs.
I managed to build the p7zip lib with NDK 10 on Windows successfully.
Instead of letting qcc detect the tool chain, I set them directly.
1) To build the lib qnx/x86:
CXX=i486-pc-nto-qnx8.0.0-g++.exe $(ALLFLAGS)
CC=i486-pc-nto-qnx8.0.0-gcc.exe $(ALLFLAGS)
2) To build the lib qnx/arm:
CXX=arm-unknown-nto-qnx8.0.0eabi-g++.exe $(ALLFLAGS)
CC=arm-unknown-nto-qnx8.0.0eabi-gcc.exe $(ALLFLAGS)
Please let me know whether these will work for u or not.
09-25-2012 09:23 AM
My config is: mingw in path, still getting compile errors. Tried with calling make form ndk 10.06 - same ![]()
C:\p7zip_9.20.1>C:\bbndk-10.0.06\host_10_0_6_1\win32\x86\usr\bin\make mkdir -p bin C:/bbndk-10.0.06/host_10_0_6_1/win32/x86/usr/bin/m ake -C CPP/7zip/Bundles/Alone all make[1]: Entering directory `C:/p7zip_9.20.1/CPP/7zip/Bundles/Alone' g++ -c -I. -I../../../myWindows -I../../../ -I../../../include_windows ../../../ myWindows/myGetTickCount.cpp In file included from c:\mingw1\bin\../lib/gcc/mingw32/4.6.2/../../../.. /include /pthread.h:198:0, from ../../../myWindows/StdAfx.h:13, from ../../../myWindows/myGetTickCount.cpp:1: ../../../include_windows/windows.h:68:9: error: 'WCHAR' does not name a type ../../../include_windows/windows.h:69:9: error: 'CHAR' does not name a type ../../../include_windows/windows.h:70:9: error: 'TCHAR' does not name a type ../../../include_windows/windows.h:91:9: error: 'BYTE' does not name a type In file included from c:\mingw1\bin\../lib/gcc/mingw32/4.6.2/../../../.. /include /pthread.h:198:0, from ../../../myWindows/StdAfx.h:13, from ../../../myWindows/myGetTickCount.cpp:1: ../../../include_windows/windows.h:131:2: error: 'WORD' does not name a type ../../../include_windows/windows.h:132:2: error: 'WORD' does not name a type ../../../include_windows/windows.h:133:2: error: 'WORD' does not name a type ../../../include_windows/windows.h:134:2: error: 'WORD' does not name a type ../../../include_windows/windows.h:135:2: error: 'WORD' does not name a type ../../../include_windows/windows.h:136:2: error: 'WORD' does not name a type ../../../include_windows/windows.h:137:2: error: 'WORD' does not name a type ../../../include_windows/windows.h:138:2: error: 'WORD' does not name a type ../../../include_windows/windows.h:145:35: error: 'WORD' was not declared in thi s scope ../../../include_windows/windows.h:145:40: error: 'WORD' was not declared in thi s scope ../../../include_windows/windows.h:145:45: error: 'FILETIME' was not declared in this scope ../../../include_windows/windows.h:145:55: error: expected primary-expression be fore ')' token ../../../include_windows/windows.h:145:55: error: expression list treated as com pound expression in initializer [-fpermissive] ../../../include_windows/windows.h:146:41: error: 'FILETIME' does not name a typ e ../../../include_windows/windows.h:146:52: error: 'WORD' has not been declared ../../../include_windows/windows.h:146:60: error: 'WORD' has not been declared ../../../include_windows/windows.h:147:43: error: 'FILETIME' does not name a typ e ../../../include_windows/windows.h:147:54: error: 'FILETIME' has not been declar ed ../../../include_windows/windows.h:148:40: error: 'FILETIME' does not name a typ e ../../../include_windows/windows.h:149:43: error: 'FILETIME' does not name a typ e ../../../include_windows/windows.h:149:54: error: 'FILETIME' has not been declar ed ../../../include_windows/windows.h:151:52: error: 'FILETIME' has not been declar ed ../../../include_windows/windows.h:153:1: error: 'DWORD' does not name a type In file included from ../../../include_windows/windows.h:167:0, from c:\mingw1\bin\../lib/gcc/mingw32/4.6.2/../../../.. /include /pthread.h:198, from ../../../myWindows/StdAfx.h:13, from ../../../myWindows/myGetTickCount.cpp:1: ../../../include_windows/basetyps.h:16:9: error: 'GUID' does not name a type ../../../include_windows/basetyps.h:17:9: error: 'GUID' does not name a type In file included from c:\mingw1\bin\../lib/gcc/mingw32/4.6.2/../../../.. /include /pthread.h:198:0, from ../../../myWindows/StdAfx.h:13, from ../../../myWindows/myGetTickCount.cpp:1: ../../../include_windows/windows.h:171:2: error: 'LPOLESTR' does not name a type ../../../include_windows/windows.h:172:2: error: 'PROPID' does not name a type ../../../include_windows/windows.h:173:2: error: 'VARTYPE' does not name a type ../../../include_windows/windows.h:177:18: error: 'IID' does not name a type ../../../include_windows/windows.h:179:1: error: expected class-name before '{' token ../../../include_windows/windows.h:180:12: error: 'QueryInterface' has not been declared ../../../include_windows/windows.h:180:28: error: 'REFIID' has not been declared ../../../include_windows/windows.h:180:41: error: 'STDMETHOD' declared as functi on returning a function ../../../include_windows/windows.h:180:41: error: expected ';' at end of member declaration ../../../include_windows/windows.h:180:43: error: 'PURE' does not name a type ../../../include_windows/windows.h:181:13: error: 'ULONG' has not been declared ../../../include_windows/windows.h:181:19: error: 'AddRef' has not been declared ../../../include_windows/windows.h:181:31: error: 'STDMETHOD_' declared as funct ion returning a function ../../../include_windows/windows.h:181:31: error: expected ';' at end of member declaration ../../../include_windows/windows.h:181:33: error: 'PURE' does not name a type ../../../include_windows/windows.h:182:13: error: 'ULONG' has not been declared ../../../include_windows/windows.h:182:19: error: 'Release' has not been declare d ../../../include_windows/windows.h:182:32: error: 'STDMETHOD_' declared as funct ion returning a function ../../../include_windows/windows.h:182:32: error: expected ';' at end of member declaration ../../../include_windows/windows.h:182:34: error: 'PURE' does not name a type ../../../include_windows/windows.h:183:12: error: 'Read' has not been declared ../../../include_windows/windows.h:183:24: error: 'ULONG' has not been declared ../../../include_windows/windows.h:183:30: error: 'ULONG' has not been declared ../../../include_windows/windows.h:183:36: error: 'STDMETHOD' declared as functi on returning a function ../../../include_windows/windows.h:183:36: error: expected ';' at end of member declaration ../../../include_windows/windows.h:183:38: error: 'PURE' does not name a type ../../../include_windows/windows.h:184:12: error: 'Write' has not been declared ../../../include_windows/windows.h:184:31: error: 'ULONG' has not been declared ../../../include_windows/windows.h:184:37: error: 'ULONG' has not been declared ../../../include_windows/windows.h:184:43: error: 'STDMETHOD' declared as functi on returning a function ../../../include_windows/windows.h:184:43: error: expected ';' at end of member declaration ../../../include_windows/windows.h:184:45: error: 'PURE' does not name a type In file included from ../../../myWindows/StdAfx.h:13:0, from ../../../myWindows/myGetTickCount.cpp:1: c:\mingw1\bin\../lib/gcc/mingw32/4.6.2/../../../.. /include/pthread.h:1216:15: er ror: 'HANDLE' does not name a type c:\mingw1\bin\../lib/gcc/mingw32/4.6.2/../../../.. /include/pthread.h:1220:15: er ror: 'DWORD' does not name a type c:\mingw1\bin\../lib/gcc/mingw32/4.6.2/../../../.. /include/pthread.h:1238:54: er ror: definition of 'int pthreadCancelableWait' is marked 'dllimport' c:\mingw1\bin\../lib/gcc/mingw32/4.6.2/../../../.. /include/pthread.h:1238:54: er ror: 'HANDLE' was not declared in this scope c:\mingw1\bin\../lib/gcc/mingw32/4.6.2/../../../.. /include/pthread.h:1239:59: er ror: definition of 'int pthreadCancelableTimedWait' is marked 'dllimport' c:\mingw1\bin\../lib/gcc/mingw32/4.6.2/../../../.. /include/pthread.h:1239:59: er ror: 'HANDLE' was not declared in this scope c:\mingw1\bin\../lib/gcc/mingw32/4.6.2/../../../.. /include/pthread.h:1240:41: er ror: 'DWORD' was not declared in this scope c:\mingw1\bin\../lib/gcc/mingw32/4.6.2/../../../.. /include/pthread.h:1240:54: er ror: expression list treated as compound expression in initializer [-fpermissive ] c:\mingw1\bin\../lib/gcc/mingw32/4.6.2/../../../.. /include/pthread.h:1285:15: er ror: 'DWORD' does not name a type In file included from ../../../Common/Types.h:6:0, from ../../../myWindows/StdAfx.h:17, from ../../../myWindows/myGetTickCount.cpp:1: ../../../Common/../../C/Types.h:46:9: error: 'DWORD' does not name a type In file included from ../../../myWindows/myGetTickCount.cpp:1:0: ../../../myWindows/StdAfx.h:58:8: error: 'DWORD' does not name a type ../../../myWindows/StdAfx.h:59:34: error: variable or field 'SetLastError' decla red void ../../../myWindows/StdAfx.h:59:34: error: 'DWORD' was not declared in this scope ../../../myWindows/StdAfx.h:107:9: error: 'WORD' does not name a type ../../../myWindows/StdAfx.h:109:1: error: 'LANGID' does not name a type ../../../myWindows/StdAfx.h:110:1: error: 'LANGID' does not name a type ../../../myWindows/myGetTickCount.cpp:5:1: error: 'DWORD' does not name a type make[1]: *** [myGetTickCount.o] Error 1 make[1]: Leaving directory `C:/p7zip_9.20.1/CPP/7zip/Bundles/Alone' make: *** [7za] Error 2 C:\p7zip_9.20.1>
09-25-2012 09:41 AM
Removed mingw because it caused conflicts witn include files, but now this errors show up
C:\bbndk-10.0.06\bbndk-env.bat -sets the path OK C:\p7zip_9.20.1>make mkdir -p bin make -C CPP/7zip/Bundles/Alone all make[1]: Entering directory `C:/p7zip_9.20.1/CPP/7zip/Bundles/Alone' g++ -c -I. -I../../../myWindows -I../../../ -I../../../include_windows ../../../ myWindows/myGetTickCount.cpp process_begin: CreateProcess(NULL, g++ -c -I. -I../../../myWindows -I../../../ - I../../../include_windows ../../../myWindows/myGetTickCount.cpp, ...) failed. make (e=2): The system cannot find the file specified. make[1]: *** [myGetTickCount.o] Error 2 make[1]: Leaving directory `C:/p7zip_9.20.1/CPP/7zip/Bundles/Alone' make: *** [7za] Error 2 C:\p7zip_9.20.1>
09-25-2012 10:31 AM
09-25-2012 11:24 AM - edited 09-25-2012 11:37 AM
Thank you very much. I changed fresh build machine with ndk 2.0.0/10.06 both built fine. Now test time ![]()
And
$ ls
sys
$ cp /accounts/1000/shared/misc/7za 7za
$ ls
7za sys
$ chmod 6775 7za
$ ./7za
7-Zip (A) 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18
p7zip Version 9.20 (locale=C,Utf16=off,HugeFiles=on,1 CPU)
Usage: 7za <command> [<switches>...] <archive_name> [<file_names>...]
[<@listfiles...>]
<Commands>
a: Add files to archive
b: Benchmark
d: Delete files from archive
e: Extract files from archive (without using directory names)
l: List contents of archive
t: Test integrity of archive
u: Update files to archive
x: eXtract files with full paths
<Switches>
-ai[r[-|0]]{@listfile|!wildcard}: Include archives
-ax[r[-|0]]{@listfile|!wildcard}: eXclude archives
-bd: Disable percentage indicator
-i[r[-|0]]{@listfile|!wildcard}: Include filenames
-m{Parameters}: set compression Method
-o{Directory}: set Output directory
-p{Password}: set Password
-r[-|0]: Recurse subdirectories
-scs{UTF-8 | WIN | DOS}: set charset for list files
-sfx[{name}]: Create SFX archive
-si[{name}]: read data from stdin
-slt: show technical information for l (List) command
-so: write data to stdout
-ssc[-]: set sensitive case mode
-t{Type}: Set type of archive
-u[-][p#][q#][r#][x#][y#][z#][!newArchiveName]: Update options
-v{Size}[b|k|m|g]: Create volumes
-w[{path}]: assign Work directory. Empty path means a temporary directory
-x[r[-|0]]]{@listfile|!wildcard}: eXclude filenames
-y: assume Yes on all queries
$