Undefined symbols for architecture arm64
-
Hi, I am having this problem for a while and I can't find the solution anywhere. I'm trying to build and run this github project named Mapper https://github.com/OpenOrienteering/mapper. I want to build it a run it. I am building it with Qt 5.12.12, and tried with 6.3.2 but I don't think this is the source of the problem. I am building on mac with apple silicon M2 chip/architecture. Tried compiling with clang and gcc but it makes no difference. Thanks in advance. It compiles just fine but when I try to build it this message shows up in the 20% of the building process.
here's the error message: ParallelImageProcessingTest.cpp.o:-1: error: Undefined symbols for architecture arm64:
"qstrdup(char const*)", referenced from:
std::__1::enable_if<QtPrivate::IsQEnumHelperQImage::Format::Value, char*>::type QTest::Internal::toStringQImage::Format(QImage::Format) in ParallelImageProcessingTest.cpp.o
"qBadAlloc()", referenced from:
QVector<unsigned int>::QVector(std::initializer_list<unsigned int>) in ParallelImageProcessingTest.cpp.o
"qt_assert(char const*, char const*, int)", referenced from:
QArrayData::data() in ParallelImageProcessingTest.cpp.o
QArrayData::data() const in ParallelImageProcessingTest.cpp.o
QArrayData::data() in libcove-vectorizer.a(ParallelImageProcessing.cpp.o)
"QArrayData::deallocate(QArrayData*, unsigned long, unsigned long)", referenced from:
QTypedArrayData<unsigned int>::deallocate(QArrayData*) in ParallelImageProcessingTest.cpp.o
QTypedArrayData<unsigned int>::deallocate(QArrayData*) in libcove-vectorizer.a(ParallelImageProcessing.cpp.o)
"QArrayData::shared_null", referenced from:
QArrayData::sharedNull() in ParallelImageProcessingTest.cpp.o
"QArrayData::allocate(unsigned long, unsigned long, unsigned long, QFlagsQArrayData::AllocationOption)", referenced from:
QTypedArrayData<unsigned int>::allocate(unsigned long, QFlagsQArrayData::AllocationOption) in ParallelImageProcessingTest.cpp.o
"QCoreApplication::setAttribute(Qt::ApplicationAttribute, bool)", referenced from:
_main in ParallelImageProcessingTest.cpp.o
"QCoreApplication::QCoreApplication(int&, char**, int)", referenced from:
_main in ParallelImageProcessingTest.cpp.o
"QCoreApplication::~QCoreApplication()", referenced from:
_main in ParallelImageProcessingTest.cpp.o
"QTest::compare_helper(bool, char const*, char*, char*, char const*, char const*, char const*, int)", referenced from:
bool QTest::qCompare<unsigned int>(unsigned int const&, unsigned int const&, char const*, char const*, char const*, int) in ParallelImageProcessingTest.cpp.o
bool QTest::qCompare<int>(int const&, int const&, char const*, char const*, char const*, int) in ParallelImageProcessingTest.cpp.o
bool QTest::qCompareQImage::Format(QImage::Format const&, QImage::Format const&, char const*, char const*, char const*, int) in ParallelImageProcessingTest.cpp.o
QTest::compare_ptr_helper(void const volatile*, void const volatile*, char const*, char const*, char const*, int) in ParallelImageProcessingTest.cpp.o
"QTest::addColumnInternal(int, char const*)", referenced from:
void QTest::addColumn<QSize>(char const*, QSize*) in ParallelImageProcessingTest.cpp.o
void QTest::addColumn<int>(char const*, int*) in ParallelImageProcessingTest.cpp.o
"QTest::setMainSourcePath(char const*, char const*)", referenced from:
_main in ParallelImageProcessingTest.cpp.o
"QTest::qData(char const*, int)", referenced from:
ParallelImageProcessingTest::makeStripeTest() in ParallelImageProcessingTest.cpp.o
"QTest::qExec(QObject*, int, char**)", referenced from:
_main in ParallelImageProcessingTest.cpp.o
"QTest::newRow(char const*)", referenced from:
ParallelImageProcessingTest::makeStripeTest_data() in ParallelImageProcessingTest.cpp.o
"QTest::qVerify(bool, char const*, char const*, char const*, int)", referenced from:
ParallelImageProcessingTest::inplaceImageTest() in ParallelImageProcessingTest.cpp.o
ParallelImageProcessingTest::makeStripeTest() in ParallelImageProcessingTest.cpp.o
"char* QTest::toString<int>(int const&)", referenced from:
bool QTest::qCompare<int>(int const&, int const&, char const*, char const*, char const*, int) in ParallelImageProcessingTest.cpp.o
"char* QTest::toString<unsigned int>(unsigned int const&)", referenced from:
bool QTest::qCompare<unsigned int>(unsigned int const&, unsigned int const&, char const*, char const*, char const*, int) in ParallelImageProcessingTest.cpp.o
"QColor::QColor(Qt::GlobalColor)", referenced from:
ParallelImageProcessingTest::inplaceImageTest() in ParallelImageProcessingTest.cpp.o
ParallelImageProcessingTest::makeStripeTest() in ParallelImageProcessingTest.cpp.o
"QImage::setColorTable(QVector<unsigned int>)", referenced from:
ParallelImageProcessingTest::makeStripeTest() in ParallelImageProcessingTest.cpp.o
cove::HorizontalStripes::makeStripe(QImage&, int, int) in libcove-vectorizer.a(ParallelImageProcessing.cpp.o)
cove::HorizontalStripes::makeStripe(QImage const&, int, int)::$_1::operator()(QImage const&, int, int) const in libcove-vectorizer.a(ParallelImageProcessing.cpp.o)
"QImage::staticMetaObject", referenced from:
qt_getEnumMetaObject(QImage::Format) in ParallelImageProcessingTest.cpp.o
"QImage::bits()", referenced from:
ParallelImageProcessingTest::inplaceImageTest() in ParallelImageProcessingTest.cpp.o
"QImage::fill(Qt::GlobalColor)", referenced from:
ParallelImageProcessingTest::inplaceImageTest() in ParallelImageProcessingTest.cpp.o
"QImage::fill(unsigned int)", referenced from:
ParallelImageProcessingTest::makeStripeTest() in ParallelImageProcessingTest.cpp.o
"QImage::scanLine(int)", referenced from:
cove::HorizontalStripes::makeStripe(QImage&, int, int) in libcove-vectorizer.a(ParallelImageProcessing.cpp.o)
"QImage::QImage(unsigned char const*, int, int, int, QImage::Format, void ()(void), void*)", referenced from:
cove::HorizontalStripes::makeStripe(QImage const&, int, int)::$_0::operator()(QImage const&, int, int) const in libcove-vectorizer.a(ParallelImageProcessing.cpp.o)
"QImage::QImage(unsigned char*, int, int, int, QImage::Format, void ()(void), void*)", referenced from:
ParallelImageProcessingTest::inplaceImageTest() in ParallelImageProcessingTest.cpp.o
cove::HorizontalStripes::makeStripe(QImage&, int, int) in libcove-vectorizer.a(ParallelImageProcessing.cpp.o)
cove::HorizontalStripes::makeStripe(QImage const&, int, int)::$_1::operator()(QImage const&, int, int) const in libcove-vectorizer.a(ParallelImageProcessing.cpp.o)
"QImage::QImage(QSize const&, QImage::Format)", referenced from:
ParallelImageProcessingTest::makeStripeTest() in ParallelImageProcessingTest.cpp.o
"QImage::QImage(QImage const&)", referenced from:
ParallelImageProcessingTest::inplaceImageTest() in ParallelImageProcessingTest.cpp.o
"QImage::QImage(int, int, QImage::Format)", referenced from:
ParallelImageProcessingTest::inplaceImageTest() in ParallelImageProcessingTest.cpp.o
"QImage::QImage()", referenced from:
cove::HorizontalStripes::makeStripe(QImage const&, int, int)::$_1::operator()(QImage const&, int, int) const in libcove-vectorizer.a(ParallelImageProcessing.cpp.o)
"QImage::~QImage()", referenced from:
ParallelImageProcessingTest::inplaceImageTest() in ParallelImageProcessingTest.cpp.o
ParallelImageProcessingTest::makeStripeTest() in ParallelImageProcessingTest.cpp.o
cove::HorizontalStripes::makeStripe(QImage&, int, int) in libcove-vectorizer.a(ParallelImageProcessing.cpp.o)
cove::HorizontalStripes::makeStripe(QImage const&, int, int)::$_1::operator()(QImage const&, int, int) const in libcove-vectorizer.a(ParallelImageProcessing.cpp.o)
"QImage::operator=(QImage const&)", referenced from:
cove::HorizontalStripes::makeStripe(QImage const&, int, int)::$_1::operator()(QImage const&, int, int) const in libcove-vectorizer.a(ParallelImageProcessing.cpp.o)
"QObject::childEvent(QChildEvent*)", referenced from:
vtable for ParallelImageProcessingTest in ParallelImageProcessingTest.cpp.o
"QObject::timerEvent(QTimerEvent*)", referenced from:
vtable for ParallelImageProcessingTest in ParallelImageProcessingTest.cpp.o
"QObject::customEvent(QEvent*)", referenced from:
vtable for ParallelImageProcessingTest in ParallelImageProcessingTest.cpp.o
"QObject::eventFilter(QObject*, QEvent*)", referenced from:
vtable for ParallelImageProcessingTest in ParallelImageProcessingTest.cpp.o
"QObject::qt_metacall(QMetaObject::Call, int, void**)", referenced from:
ParallelImageProcessingTest::qt_metacall(QMetaObject::Call, int, void**) in ParallelImageProcessingTest.cpp.o
"QObject::qt_metacast(char const*)", referenced from:
ParallelImageProcessingTest::qt_metacast(char const*) in ParallelImageProcessingTest.cpp.o
"QObject::connectNotify(QMetaMethod const&)", referenced from:
vtable for ParallelImageProcessingTest in ParallelImageProcessingTest.cpp.o
"QObject::disconnectNotify(QMetaMethod const&)", referenced from:
vtable for ParallelImageProcessingTest in ParallelImageProcessingTest.cpp.o
"QObject::staticMetaObject", referenced from:
ParallelImageProcessingTest::staticMetaObject in ParallelImageProcessingTest.cpp.o
"QObject::event(QEvent*)", referenced from:
vtable for ParallelImageProcessingTest in ParallelImageProcessingTest.cpp.o
"QObject::QObject(QObject*)", referenced from:
ParallelImageProcessingTest::ParallelImageProcessingTest() in ParallelImageProcessingTest.cpp.o
"QObject::~QObject()", referenced from:
ParallelImageProcessingTest::~ParallelImageProcessingTest() in ParallelImageProcessingTest.cpp.o
"QTestData::append(int, void const*)", referenced from:
QTestData& operator<<<int>(QTestData&, int const&) in ParallelImageProcessingTest.cpp.o
QTestData& operator<<<QSize>(QTestData&, QSize const&) in ParallelImageProcessingTest.cpp.o
"QMetaObject::enumerator(int) const", referenced from:
QMetaEnum QMetaEnum::fromTypeQImage::Format() in ParallelImageProcessingTest.cpp.o
"QMetaObject::indexOfEnumerator(char const*) const", referenced from:
QMetaEnum QMetaEnum::fromTypeQImage::Format() in ParallelImageProcessingTest.cpp.o
"QObjectData::dynamicMetaObject() const", referenced from:
ParallelImageProcessingTest::metaObject() const in ParallelImageProcessingTest.cpp.o
"QColor::rgb() const", referenced from:
ParallelImageProcessingTest::inplaceImageTest() in ParallelImageProcessingTest.cpp.o
ParallelImageProcessingTest::makeStripeTest() in ParallelImageProcessingTest.cpp.o
"QImage::colorCount() const", referenced from:
cove::HorizontalStripes::makeStripe(QImage const&, int, int) in libcove-vectorizer.a(ParallelImageProcessing.cpp.o)
cove::HorizontalStripes::makeStripe(QImage&, int, int) in libcove-vectorizer.a(ParallelImageProcessing.cpp.o)
"QImage::colorTable() const", referenced from:
ParallelImageProcessingTest::makeStripeTest() in ParallelImageProcessingTest.cpp.o
cove::HorizontalStripes::makeStripe(QImage&, int, int) in libcove-vectorizer.a(ParallelImageProcessing.cpp.o)
cove::HorizontalStripes::makeStripe(QImage const&, int, int)::$_1::operator()(QImage const&, int, int) const in libcove-vectorizer.a(ParallelImageProcessing.cpp.o)
"QImage::pixelIndex(int, int) const", referenced from:
ParallelImageProcessingTest::makeStripeTest() in ParallelImageProcessingTest.cpp.o
"QImage::bytesPerLine() const", referenced from:
ParallelImageProcessingTest::inplaceImageTest() in ParallelImageProcessingTest.cpp.o
ParallelImageProcessingTest::makeStripeTest() in ParallelImageProcessingTest.cpp.o
cove::HorizontalStripes::makeStripe(QImage&, int, int) in libcove-vectorizer.a(ParallelImageProcessing.cpp.o)
cove::HorizontalStripes::makeStripe(QImage const&, int, int)::$_0::operator()(QImage const&, int, int) const in libcove-vectorizer.a(ParallelImageProcessing.cpp.o)
cove::HorizontalStripes::makeStripe(QImage const&, int, int)::$_1::operator()(QImage const&, int, int) const in libcove-vectorizer.a(ParallelImageProcessing.cpp.o)
"QImage::constScanLine(int) const", referenced from:
ParallelImageProcessingTest::makeStripeTest() in ParallelImageProcessingTest.cpp.o
cove::HorizontalStripes::makeStripe(QImage const&, int, int)::$_0::operator()(QImage const&, int, int) const in libcove-vectorizer.a(ParallelImageProcessing.cpp.o)
cove::HorizontalStripes::makeStripe(QImage const&, int, int)::$_1::operator()(QImage const&, int, int) const in libcove-vectorizer.a(ParallelImageProcessing.cpp.o)
"QImage::pixel(int, int) const", referenced from:
ParallelImageProcessingTest::inplaceImageTest() in ParallelImageProcessingTest.cpp.o
"QImage::width() const", referenced from:
ParallelImageProcessingTest::inplaceImageTest() in ParallelImageProcessingTest.cpp.o
cove::HorizontalStripes::makeStripe(QImage&, int, int) in libcove-vectorizer.a(ParallelImageProcessing.cpp.o)
cove::HorizontalStripes::makeStripe(QImage const&, int, int)::$_0::operator()(QImage const&, int, int) const in libcove-vectorizer.a(ParallelImageProcessing.cpp.o)
cove::HorizontalStripes::makeStripe(QImage const&, int, int)::$_1::operator()(QImage const&, int, int) const in libcove-vectorizer.a(ParallelImageProcessing.cpp.o)
"QImage::format() const", referenced from:
ParallelImageProcessingTest::inplaceImageTest() in ParallelImageProcessingTest.cpp.o
ParallelImageProcessingTest::makeStripeTest() in ParallelImageProcessingTest.cpp.o
cove::HorizontalStripes::makeStripe(QImage&, int, int) in libcove-vectorizer.a(ParallelImageProcessing.cpp.o)
cove::HorizontalStripes::makeStripe(QImage const&, int, int)::$_0::operator()(QImage const&, int, int) const in libcove-vectorizer.a(ParallelImageProcessing.cpp.o)
cove::HorizontalStripes::makeStripe(QImage const&, int, int)::$_1::operator()(QImage const&, int, int) const in libcove-vectorizer.a(ParallelImageProcessing.cpp.o)
"QImage::height() const", referenced from:
ParallelImageProcessingTest::inplaceImageTest() in ParallelImageProcessingTest.cpp.o
ParallelImageProcessingTest::makeStripeTest() in ParallelImageProcessingTest.cpp.o
cove::HorizontalStripes::makeStripe(QImage&, int, int) in libcove-vectorizer.a(ParallelImageProcessing.cpp.o)
cove::HorizontalStripes::makeStripe(QImage const&, int, int)::$_0::operator()(QImage const&, int, int) const in libcove-vectorizer.a(ParallelImageProcessing.cpp.o)
cove::HorizontalStripes::makeStripe(QImage const&, int, int)::$_1::operator()(QImage const&, int, int) const in libcove-vectorizer.a(ParallelImageProcessing.cpp.o)
"QImage::constBits() const", referenced from:
ParallelImageProcessingTest::makeStripeTest() in ParallelImageProcessingTest.cpp.o
"QMetaEnum::valueToKey(int) const", referenced from:
std::__1::enable_if<QtPrivate::IsQEnumHelperQImage::Format::Value, char*>::type QTest::Internal::toStringQImage::Format(QImage::Format) in ParallelImageProcessingTest.cpp.o
"typeinfo for QImage", referenced from:
l___unnamed_13 in ParallelImageProcessingTest.cpp.o
l___unnamed_14 in ParallelImageProcessingTest.cpp.o
l___unnamed_15 in ParallelImageProcessingTest.cpp.o
l___unnamed_16 in ParallelImageProcessingTest.cpp.o
l___unnamed_17 in ParallelImageProcessingTest.cpp.o
l___unnamed_18 in ParallelImageProcessingTest.cpp.o
l___unnamed_19 in ParallelImageProcessingTest.cpp.o
...
"typeinfo for QObject", referenced from:
l___unnamed_84 in ParallelImageProcessingTest.cpp.o
l___unnamed_90 in ParallelImageProcessingTest.cpp.o
l___unnamed_97 in ParallelImageProcessingTest.cpp.o
l___unnamed_100 in ParallelImageProcessingTest.cpp.o
typeinfo for ParallelImageProcessingTest in ParallelImageProcessingTest.cpp.o -
Qt 5.12.12 is not available (in prebuilt form) for arm64 arch. You need to compile for x86.
-
-
@stepos said in Undefined symbols for architecture arm64:
Even when I compile with Qt 6.3.2 with Apple Clang x86_64 it shows the same message
OK, how do you compile, then? Looks like qmake / cmake selects wrong architecture.
-
-
@stepos said in Undefined symbols for architecture arm64:
Even when I compile with Qt 6.3.2 with Apple Clang x86_64 it shows the same message
OK, how do you compile, then? Looks like qmake / cmake selects wrong architecture.
-
@sierdzio I don't really know how to answer this. I am using cmake 3.24.2. How do I check what architecture cmake selects?
@stepos said in Undefined symbols for architecture arm64:
How do I check what architecture cmake selects?
How exactly do you call CMake?
-
@stepos said in Undefined symbols for architecture arm64:
How do I check what architecture cmake selects?
How exactly do you call CMake?
-
You can try defining CMAKE_OSX_ARCHITECTURES when executing cmake. For example:
cmake -DCMAKE_OSX_ARCHITECTURES=arm64 ..