Embed the source code error on Qt 5.15 macos
surfingtomchen opened this issue · 2 comments
Hi,
I tried to integrate the code into my own project in a embeded way. If the target is Android, I get quite a lots of compiling errors. When I choose the target to Desktop, then I got following link error.
"Undefined symbols for architecture x86_64:
"zxing::String::append(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from:
zxing::oned::rss::RSS14Reader::constructResult(zxing::oned::rss::Pair, zxing::oned::rss::Pair) const in RSS14Reader.o
zxing::oned::rss::ExpandedRow::toString() in ExpandedRow.o
zxing::oned::rss::AI01AndOtherAIs::parseInformation() in AI01AndOtherAIs.o
zxing::oned::rss::AI01decoder::encodeCompressedGtin(zxing::String&, int) in AI01decoder.o
zxing::oned::rss::AI01decoder::encodeCompressedGtinWithoutAI(zxing::String&, int, int) in AI01decoder.o
zxing::oned::rss::AI01decoder::appendCheckDigit(zxing::String&, int) in AI01decoder.o
zxing::oned::rss::AI01weightDecoder::encodeCompressedWeight(zxing::String&, int, int) in AI01weightDecoder.o
...
"zxing::String::append(char)", referenced from:
zxing::oned::rss::RSS14Reader::constructResult(zxing::oned::rss::Pair, zxing::oned::rss::Pair) const in RSS14Reader.o
zxing::oned::rss::AI01decoder::encodeCompressedGtin(zxing::String&, int) in AI01decoder.o
zxing::oned::rss::AI01weightDecoder::encodeCompressedWeight(zxing::String&, int, int) in AI01weightDecoder.o
zxing::oned::rss::AI013x0x1xDecoder::encodeCompressedDate(zxing::String&, int) in AI013x0x1xDecoder.o
zxing::oned::rss::AI013x0x1xDecoder::addWeightCode(zxing::String&, int) in AI013x0x1xDecoder.o
zxing::oned::rss::AI01392xDecoder::parseInformation() in AI01392xDecoder.o
zxing::oned::rss::AI01393xDecoder::parseInformation() in AI01393xDecoder.o
...
"zxing::String::String(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from:
zxing::oned::UPCEReader::convertUPCEtoUPCA(zxing::Ref<zxing::String> const&) in UPCEReader.o
zxing::oned::UPCEANReader::decodeRow(int, zxing::Ref<zxing::BitArray>, zxing::oned::OneDReader::Range const&, zxing::DecodeHints) in UPCEANReader.o
zxing::oned::UPCEANExtension2Support::decodeRow(int, zxing::Ref<zxing::BitArray>, int, int) in UPCEANExtension2Support.o
zxing::oned::UPCEANExtension5Support::decodeRow(int, zxing::Ref<zxing::BitArray>, int, int) in UPCEANExtension5Support.o
zxing::oned::UPCAReader::maybeReturnResult(zxing::Ref<zxing::Result>) in UPCAReader.o
zxing::oned::ITFReader::decodeRow(int, zxing::Ref<zxing::BitArray>, zxing::DecodeHints) in ITFReader.o
zxing::oned::EANManufacturerOrgSupport::lookupCountryIdentifier(zxing::Ref<zxing::String>&) in EANManufacturerOrgSupport.o
...
"zxing::String::String(int)", referenced from:
zxing::oned::rss::RSS14Reader::constructResult(zxing::oned::rss::Pair, zxing::oned::rss::Pair) const in RSS14Reader.o
zxing::pdf417::DecodedBitStreamParser::decode(zxing::ArrayRef<int>) in PDF417DecodedBitStreamParser.o
"zxing::String::size() const", referenced from:
zxing::oned::ITFReader::decodeRow(int, zxing::Ref<zxing::BitArray>, zxing::DecodeHints) in ITFReader.o
"zxing::String::charAt(int) const", referenced from:
zxing::oned::MultiFormatUPCEANReader::decodeRow(int, zxing::Ref<zxing::BitArray>, zxing::DecodeHints) in MultiFormatUPCEANReader.o
zxing::oned::rss::RSS14Reader::constructResult(zxing::oned::rss::Pair, zxing::oned::rss::Pair) const in RSS14Reader.o
zxing::oned::rss::AI01decoder::appendCheckDigit(zxing::String&, int) in AI01decoder.o
"zxing::String::length() const", referenced from:
zxing::oned::UPCEANReader::decodeRow(int, zxing::Ref<zxing::BitArray>, zxing::oned::OneDReader::Range const&, zxing::DecodeHints) in UPCEANReader.o
zxing::oned::rss::RSS14Reader::constructResult(zxing::oned::rss::Pair, zxing::oned::rss::Pair) const in RSS14Reader.o
zxing::oned::rss::AI01AndOtherAIs::parseInformation() in AI01AndOtherAIs.o
zxing::oned::rss::AI01decoder::encodeCompressedGtin(zxing::String&, int) in AI01decoder.o
zxing::oned::rss::FieldParser::parseFieldsInGeneralPurpose(zxing::String) in FieldParser.o
zxing::oned::rss::FieldParser::processVariableAI(int, int, zxing::String) in FieldParser.o
zxing::oned::rss::FieldParser::processFixedAI(int, int, zxing::String) in FieldParser.o
...
"zxing::String::getText() const", referenced from:
QZXing::decodeImage(QImage const&, int, int, bool) in QZXing.o
zxing::operator<<(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, zxing::Result&) in ResultIO.o
zxing::multi::GenericMultipleBarcodeReader::doDecodeMultiple(zxing::Ref<zxing::BinaryBitmap>, zxing::DecodeHints, std::__1::vector<zxing::Ref<zxing::Result>, std::__1::allocator<zxing::Ref<zxing::Result> > >&, int, int, int) in GenericMultipleBarcodeReader.o
zxing::oned::UPCEReader::convertUPCEtoUPCA(zxing::Ref<zxing::String> const&) in UPCEReader.o
zxing::oned::UPCEANReader::decodeRow(int, zxing::Ref<zxing::BitArray>, zxing::oned::OneDReader::Range const&, zxing::DecodeHints) in UPCEANReader.o
zxing::oned::UPCEANReader::checkStandardUPCEANChecksum(zxing::Ref<zxing::String> const&) in UPCEANReader.o
zxing::oned::UPCAReader::maybeReturnResult(zxing::Ref<zxing::Result>) in UPCAReader.o
...
"zxing::String::substring(int, int) const", referenced from:
zxing::oned::MultiFormatUPCEANReader::decodeRow(int, zxing::Ref<zxing::BitArray>, zxing::DecodeHints) in MultiFormatUPCEANReader.o
zxing::oned::rss::FieldParser::parseFieldsInGeneralPurpose(zxing::String) in FieldParser.o
zxing::oned::rss::FieldParser::processVariableAI(int, int, zxing::String) in FieldParser.o
zxing::oned::rss::FieldParser::processFixedAI(int, int, zxing::String) in FieldParser.o
Here is my pro file:
QT += core gui qml quick widgets network xml quickwidgets concurrent multimedia
contains(ANDROID_TARGET_ARCH,armeabi-v7a) {
QT += androidextras
}
QMAKE_CFLAGS += -std=c++0x
QMAKE_CFLAGS += -fshort-wchar
QMAKE_CFLAGS += -Wno-write-strings
QMAKE_CFLAGS += -Wno-conversion-null
QMAKE_CFLAGS += -Wno-narrowing
QMAKE_CXXFLAGS += -fshort-wchar
QMAKE_CXXFLAGS += -std=c++0x
QMAKE_CXXFLAGS += -Wno-write-strings
QMAKE_CXXFLAGS += -Wno-conversion-null
QMAKE_CXXFLAGS += -Wno-narrowing
QMAKE_EXT_CPP += .c
QMAKE_EXT_CPP += .cc
QMAKE_EXT_CPP += .cpp
CONFIG += mobility
CONFIG += qzxing_qml
CONFIG += qzxing_multimedia
include(qzxing/QZXing.pri)
the pro file ignore some the source file of my own.
please let me know how to solve this, thanks in advance.
Hello @surfingtomchen
sorry for the long delay.
My guess on this would be towards the use of namespaces in the file src/zxing/zxing/common/Str.cpp. Since in both Linux and Windows I can not reproduce this error, attached you will find a zip folder with Str.h and Str.cpp. Copy these files in the QZXing folder under: QZXing/src/zxing/zxing/common
Looking forward to your input.
Closing due to no further info.