cyndis / qmlrs

QtQuick interface for Rust
Apache License 2.0
436 stars 43 forks source link

Example not running on MacOS X 10.11 #39

Closed kuznetsovin closed 8 years ago

kuznetsovin commented 8 years ago

Hi. I can't run factorial example on Mac OS X. When I try exec command cargo run --verbose --example factorial, I see error:

Running 'rustc examples/factorial.rs --crate-name factorial --crate-type bin -g --out-dir /Users/igorkuznetsov/Projects/qmlrs/target/debug/examples --emit=dep-info,link -L dependency=/Users/igorkuznetsov/Projects/qmlrs/target/debug -L dependency=/Users/igorkuznetsov/Projects/qmlrs/target/debug/deps --extern libc=/Users/igorkuznetsov/Projects/qmlrs/target/debug/deps/liblibc-c862fb1c783dd674.rlib --extern qmlrs=/Users/igorkuznetsov/Projects/qmlrs/target/debug/libqmlrs.rlib -L native=/Users/igorkuznetsov/Projects/qmlrs/ext/libqmlrswrapper/build -L framework=/usr/local/Cellar/qt5/5.5.1_2/lib -L framework=/usr/local/Cellar/qt5/5.5.1_2/lib -L framework=/usr/local/Cellar/qt5/5.5.1_2/lib -L framework=/usr/local/Cellar/qt5/5.5.1_2/lib -L framework=/usr/local/Cellar/qt5/5.5.1_2/lib'
error: linking with 'cc' failed: exit code: 1
note: "cc" "-m64" "-L" "/usr/local/lib/rustlib/x86_64-apple-darwin/lib" "/Users/igorkuznetsov/Projects/qmlrs/target/debug/examples/factorial.0.o" "-o" "/Users/igorkuznetsov/Projects/qmlrs/target/debug/examples/factorial" "-Wl,-dead_strip" "-nodefaultlibs" "-L" "/Users/igorkuznetsov/Projects/qmlrs/target/debug" "-L" "/Users/igorkuznetsov/Projects/qmlrs/target/debug/deps" "-L" "/Users/igorkuznetsov/Projects/qmlrs/ext/libqmlrswrapper/build" "-F" "/usr/local/Cellar/qt5/5.5.1_2/lib" "-F" "/usr/local/Cellar/qt5/5.5.1_2/lib" "-F" "/usr/local/Cellar/qt5/5.5.1_2/lib" "-F" "/usr/local/Cellar/qt5/5.5.1_2/lib" "-F" "/usr/local/Cellar/qt5/5.5.1_2/lib" "-L" "/usr/local/lib/rustlib/x86_64-apple-darwin/lib" "/Users/igorkuznetsov/Projects/qmlrs/target/debug/libqmlrs.rlib" "/Users/igorkuznetsov/Projects/qmlrs/target/debug/deps/liblibc-c862fb1c783dd674.rlib" "/usr/local/lib/rustlib/x86_64-apple-darwin/lib/libstd-ca9f0d77.rlib" "/usr/local/lib/rustlib/x86_64-apple-darwin/lib/libcollections-ca9f0d77.rlib" "/usr/local/lib/rustlib/x86_64-apple-darwin/lib/librustc_unicode-ca9f0d77.rlib" "/usr/local/lib/rustlib/x86_64-apple-darwin/lib/librand-ca9f0d77.rlib" "/usr/local/lib/rustlib/x86_64-apple-darwin/lib/liballoc-ca9f0d77.rlib" "/usr/local/lib/rustlib/x86_64-apple-darwin/lib/liballoc_jemalloc-ca9f0d77.rlib" "/usr/local/lib/rustlib/x86_64-apple-darwin/lib/liblibc-ca9f0d77.rlib" "/usr/local/lib/rustlib/x86_64-apple-darwin/lib/libcore-ca9f0d77.rlib" "-l" "stdc++" "-l" "System" "-l" "pthread" "-l" "c" "-l" "m" "-l" "compiler-rt"
note: Undefined symbols for architecture x86_64:
  "QQmlEngine::event(QEvent*)", referenced from:
      vtable for QrsApplicationEngine in libqmlrs.rlib(qmlrswrapper_automoc.cpp.o)
  "QQmlApplicationEngine::~QQmlApplicationEngine()", referenced from:
      QrsApplicationEngine::~QrsApplicationEngine() in libqmlrs.rlib(qmlrswrapper_automoc.cpp.o)
      QrsApplicationEngine::~QrsApplicationEngine() in libqmlrs.rlib(qmlrswrapper_automoc.cpp.o)
  "QQmlApplicationEngine::qt_metacall(QMetaObject::Call, int, void**)", referenced from:
      QrsApplicationEngine::qt_metacall(QMetaObject::Call, int, void**) in libqmlrs.rlib(qmlrswrapper_automoc.cpp.o)
  "QQmlApplicationEngine::qt_metacast(char const*)", referenced from:
      QrsApplicationEngine::qt_metacast(char const*) in libqmlrs.rlib(qmlrswrapper_automoc.cpp.o)
  "QObjectData::dynamicMetaObject() const", referenced from:
      QrsApplicationEngine::metaObject() const in libqmlrs.rlib(qmlrswrapper_automoc.cpp.o)
  "QVariant::operator=(QVariant const&)", referenced from:
      QrsApplicationEngine::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) in libqmlrs.rlib(qmlrswrapper_automoc.cpp.o)
  "typeinfo for QObject", referenced from:
      typeinfo for QrsDynamicObject in libqmlrs.rlib(qrsdynamicobject.cpp.o)
  "QObject::timerEvent(QTimerEvent*)", referenced from:
      vtable for QrsDynamicObject in libqmlrs.rlib(qrsdynamicobject.cpp.o)
      vtable for QrsApplicationEngine in libqmlrs.rlib(qmlrswrapper_automoc.cpp.o)
  "QUrl::~QUrl()", referenced from:
      _qmlrs_engine_load_url in libqmlrs.rlib(libqmlrswrapper.cpp.o)
  "QObject::childEvent(QChildEvent*)", referenced from:
      vtable for QrsDynamicObject in libqmlrs.rlib(qrsdynamicobject.cpp.o)
      vtable for QrsApplicationEngine in libqmlrs.rlib(qmlrswrapper_automoc.cpp.o)
  "QObject::customEvent(QEvent*)", referenced from:
      vtable for QrsDynamicObject in libqmlrs.rlib(qrsdynamicobject.cpp.o)
      vtable for QrsApplicationEngine in libqmlrs.rlib(qmlrswrapper_automoc.cpp.o)
  "QObject::connectNotify(QMetaMethod const&)", referenced from:
      vtable for QrsDynamicObject in libqmlrs.rlib(qrsdynamicobject.cpp.o)
      vtable for QrsApplicationEngine in libqmlrs.rlib(qmlrswrapper_automoc.cpp.o)
  "QListData::erase(void**)", referenced from:
      QList<unsigned int>::takeFirst() in libqmlrs.rlib(qrsdynamicobject.cpp.o)
  "qBadAlloc()", referenced from:
      QVector<QrsDynamicMetaObject::finalize()::ArrayData>::reallocData(int, int, QFlags<QArrayData::AllocationOption>) in libqmlrs.rlib(qrsdynamicobject.cpp.o)
      QVector<unsigned int>::reallocData(int, int, QFlags<QArrayData::AllocationOption>) in libqmlrs.rlib(qrsdynamicobject.cpp.o)
  "QObject::qt_metacall(QMetaObject::Call, int, void**)", referenced from:
      QrsDynamicObject::qt_metacall(QMetaObject::Call, int, void**) in libqmlrs.rlib(qrsdynamicobject.cpp.o)
  "QMessageLogger::warning(char const*, ...) const", referenced from:
      QrsDynamicObject::qt_metacall(QMetaObject::Call, int, void**) in libqmlrs.rlib(qrsdynamicobject.cpp.o)
  "QObject::~QObject()", referenced from:
      QrsDynamicObject::~QrsDynamicObject() in libqmlrs.rlib(qrsdynamicobject.cpp.o)
      QrsDynamicObject::~QrsDynamicObject() in libqmlrs.rlib(qrsdynamicobject.cpp.o)
  "QQmlApplicationEngine::staticMetaObject", referenced from:
      QrsApplicationEngine::staticMetaObject in libqmlrs.rlib(qmlrswrapper_automoc.cpp.o)
  "QListData::detach_grow(int*, int)", referenced from:
      QList<QrsDynamicMetaObject::Method>::detach_helper_grow(int, int) in libqmlrs.rlib(qrsdynamicobject_capi.cpp.o)
      QList<unsigned int>::detach_helper_grow(int, int) in libqmlrs.rlib(qrsdynamicobject.cpp.o)
  "QGuiApplication::QGuiApplication(int&, char**, int)", referenced from:
      _qmlrs_create_engine in libqmlrs.rlib(libqmlrswrapper.cpp.o)
  "QObject::QObject(QObject*)", referenced from:
      QrsDynamicMetaObject::create(void* (*)(void*, int, QVariant**), void*) in libqmlrs.rlib(qrsdynamicobject.cpp.o)
  "QObject::staticMetaObject", referenced from:
      QrsDynamicMetaObject::finalize() in libqmlrs.rlib(qrsdynamicobject.cpp.o)
  "typeinfo for QQmlApplicationEngine", referenced from:
      typeinfo for QrsApplicationEngine in libqmlrs.rlib(qmlrswrapper_automoc.cpp.o)
  "QString::fromAscii_helper(char const*, int)", referenced from:
      QrsDynamicMetaObject::finalize() in libqmlrs.rlib(qrsdynamicobject.cpp.o)
  "QByteArray::append(QByteArray const&)", referenced from:
      QrsDynamicMetaObject::finalize() in libqmlrs.rlib(qrsdynamicobject.cpp.o)
  "QVariant::type() const", referenced from:
      _qmlrs_variant_get_type in libqmlrs.rlib(libqmlrswrapper.cpp.o)
  "QByteArray::append(char)", referenced from:
      QrsDynamicMetaObject::finalize() in libqmlrs.rlib(qrsdynamicobject.cpp.o)
  "QVariant::QVariant(QVariant const&)", referenced from:
      QList<QVariant>::node_copy(QList<QVariant>::Node*, QList<QVariant>::Node*, QList<QVariant>::Node*) in libqmlrs.rlib(libqmlrswrapper.cpp.o)
  "QObject::disconnectNotify(QMetaMethod const&)", referenced from:
      vtable for QrsDynamicObject in libqmlrs.rlib(qrsdynamicobject.cpp.o)
      vtable for QrsApplicationEngine in libqmlrs.rlib(qmlrswrapper_automoc.cpp.o)
  "QArrayData::shared_null", referenced from:
      QrsDynamicMetaObject::finalize() in libqmlrs.rlib(qrsdynamicobject.cpp.o)
      QVector<QrsDynamicMetaObject::finalize()::ArrayData>::reallocData(int, int, QFlags<QArrayData::AllocationOption>) in libqmlrs.rlib(qrsdynamicobject.cpp.o)
      QVector<unsigned int>::reallocData(int, int, QFlags<QArrayData::AllocationOption>) in libqmlrs.rlib(qrsdynamicobject.cpp.o)
  "QListData::shared_null", referenced from:
      QrsDynamicMetaObject::QrsDynamicMetaObject() in libqmlrs.rlib(qrsdynamicobject.cpp.o)
      QrsDynamicMetaObject::finalize() in libqmlrs.rlib(qrsdynamicobject.cpp.o)
  "QListData::detach(int)", referenced from:
      QrsApplicationEngine::invokeQmlSlot(QString, QList<QVariant>) in libqmlrs.rlib(libqmlrswrapper.cpp.o)
      QList<QVariant>::detach_helper(int) in libqmlrs.rlib(libqmlrswrapper.cpp.o)
      QList<unsigned int>::takeFirst() in libqmlrs.rlib(qrsdynamicobject.cpp.o)
      QList<QrsDynamicMetaObject::Method>::detach_helper(int) in libqmlrs.rlib(qrsdynamicobject.cpp.o)
      QList<QVariant>::QList(QList<QVariant> const&) in libqmlrs.rlib(qmlrswrapper_automoc.cpp.o)
  "QUrl::QUrl(QString const&, QUrl::ParsingMode)", referenced from:
      _qmlrs_engine_load_url in libqmlrs.rlib(libqmlrswrapper.cpp.o)
  "QQmlApplicationEngine::rootObjects()", referenced from:
      QrsApplicationEngine::invokeQmlSlot(QString, QList<QVariant>) in libqmlrs.rlib(libqmlrswrapper.cpp.o)
  "QQmlApplicationEngine::load(QUrl const&)", referenced from:
      _qmlrs_engine_load_url in libqmlrs.rlib(libqmlrswrapper.cpp.o)
  "QString::toUtf8_helper(QString const&)", referenced from:
      QrsApplicationEngine::invokeQmlSlot(QString, QList<QVariant>) in libqmlrs.rlib(libqmlrswrapper.cpp.o)
      QrsDynamicMetaObject::finalize() in libqmlrs.rlib(qrsdynamicobject.cpp.o)
  "QVariant::~QVariant()", referenced from:
      _qmlrs_variant_set_int64 in libqmlrs.rlib(libqmlrswrapper.cpp.o)
      QrsApplicationEngine::invokeQmlSlot(QString, QList<QVariant>) in libqmlrs.rlib(libqmlrswrapper.cpp.o)
      QList<QVariant>::node_copy(QList<QVariant>::Node*, QList<QVariant>::Node*, QList<QVariant>::Node*) in libqmlrs.rlib(libqmlrswrapper.cpp.o)
      QList<QVariant>::detach_helper(int) in libqmlrs.rlib(libqmlrswrapper.cpp.o)
      QrsApplicationEngine::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) in libqmlrs.rlib(qmlrswrapper_automoc.cpp.o)
  "QQmlContext::setContextProperty(QString const&, QObject*)", referenced from:
      _qmlrs_engine_set_property in libqmlrs.rlib(libqmlrswrapper.cpp.o)
  "QListData::append()", referenced from:
      QList<QrsDynamicMetaObject::Method>::append(QrsDynamicMetaObject::Method const&) in libqmlrs.rlib(qrsdynamicobject_capi.cpp.o)
      QrsDynamicMetaObject::finalize() in libqmlrs.rlib(qrsdynamicobject.cpp.o)
  "QMessageLogger::fatal(char const*, ...) const", referenced from:
      QrsDynamicMetaObject::addSlot(QString, unsigned int) in libqmlrs.rlib(qrsdynamicobject_capi.cpp.o)
  "QGuiApplication::exec()", referenced from:
      _qmlrs_app_exec in libqmlrs.rlib(libqmlrswrapper.cpp.o)
  "QObject::event(QEvent*)", referenced from:
      vtable for QrsDynamicObject in libqmlrs.rlib(qrsdynamicobject.cpp.o)
  "QListData::dispose(QListData::Data*)", referenced from:
      QrsApplicationEngine::invokeQmlSlot(QString, QList<QVariant>) in libqmlrs.rlib(libqmlrswrapper.cpp.o)
      QList<QVariant>::detach_helper(int) in libqmlrs.rlib(libqmlrswrapper.cpp.o)
      QList<QrsDynamicMetaObject::Method>::detach_helper_grow(int, int) in libqmlrs.rlib(qrsdynamicobject_capi.cpp.o)
      QrsDynamicMetaObject::~QrsDynamicMetaObject() in libqmlrs.rlib(qrsdynamicobject.cpp.o)
      QrsDynamicMetaObject::finalize() in libqmlrs.rlib(qrsdynamicobject.cpp.o)
      QList<unsigned int>::takeFirst() in libqmlrs.rlib(qrsdynamicobject.cpp.o)
      QList<QrsDynamicMetaObject::Method>::detach_helper(int) in libqmlrs.rlib(qrsdynamicobject.cpp.o)
      ...
  "QArrayData::deallocate(QArrayData*, unsigned long, unsigned long)", referenced from:
      _qmlrs_engine_load_url in libqmlrs.rlib(libqmlrswrapper.cpp.o)
      _qmlrs_engine_set_property in libqmlrs.rlib(libqmlrswrapper.cpp.o)
      QrsApplicationEngine::invokeQmlSlot(QString, QList<QVariant>) in libqmlrs.rlib(libqmlrswrapper.cpp.o)
      _qmlrs_metaobject_add_slot in libqmlrs.rlib(qrsdynamicobject_capi.cpp.o)
      QrsDynamicMetaObject::addSlot(QString, unsigned int) in libqmlrs.rlib(qrsdynamicobject_capi.cpp.o)
      QList<QrsDynamicMetaObject::Method>::detach_helper_grow(int, int) in libqmlrs.rlib(qrsdynamicobject_capi.cpp.o)
      QList<QrsDynamicMetaObject::Method>::node_copy(QList<QrsDynamicMetaObject::Method>::Node*, QList<QrsDynamicMetaObject::Method>::Node*, QList<QrsDynamicMetaObject::Method>::Node*) in libqmlrs.rlib(qrsdynamicobject_capi.cpp.o)
      ...
  "QQmlEngine::rootContext() const", referenced from:
      _qmlrs_engine_set_property in libqmlrs.rlib(libqmlrswrapper.cpp.o)
  "QVariant::toLongLong(bool*) const", referenced from:
      _qmlrs_variant_get_int64 in libqmlrs.rlib(libqmlrswrapper.cpp.o)
  "QObject::eventFilter(QObject*, QEvent*)", referenced from:
      vtable for QrsDynamicObject in libqmlrs.rlib(qrsdynamicobject.cpp.o)
      vtable for QrsApplicationEngine in libqmlrs.rlib(qmlrswrapper_automoc.cpp.o)
  "QArrayData::allocate(unsigned long, unsigned long, unsigned long, QFlags<QArrayData::AllocationOption>)", referenced from:
      QrsDynamicMetaObject::finalize() in libqmlrs.rlib(qrsdynamicobject.cpp.o)
      QVector<QrsDynamicMetaObject::finalize()::ArrayData>::reallocData(int, int, QFlags<QArrayData::AllocationOption>) in libqmlrs.rlib(qrsdynamicobject.cpp.o)
      QVector<unsigned int>::reallocData(int, int, QFlags<QArrayData::AllocationOption>) in libqmlrs.rlib(qrsdynamicobject.cpp.o)
  "QMetaObject::invokeMethod(QObject*, char const*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument)", referenced from:
      QrsApplicationEngine::invokeQmlSlot(QString, QList<QVariant>) in libqmlrs.rlib(libqmlrswrapper.cpp.o)
  "QVariant::QVariant(long long)", referenced from:
      _qmlrs_variant_set_int64 in libqmlrs.rlib(libqmlrswrapper.cpp.o)
  "QString::fromUtf8_helper(char const*, int)", referenced from:
      _qmlrs_engine_load_url in libqmlrs.rlib(libqmlrswrapper.cpp.o)
      _qmlrs_engine_set_property in libqmlrs.rlib(libqmlrswrapper.cpp.o)
      _qmlrs_metaobject_add_slot in libqmlrs.rlib(qrsdynamicobject_capi.cpp.o)
      QrsDynamicMetaObject::finalize() in libqmlrs.rlib(qrsdynamicobject.cpp.o)
  "QString::arg(long long, int, int, QChar) const", referenced from:
      QrsDynamicMetaObject::finalize() in libqmlrs.rlib(qrsdynamicobject.cpp.o)
  "QCoreApplication::self", referenced from:
      _qmlrs_create_engine in libqmlrs.rlib(libqmlrswrapper.cpp.o)
  "QVariant::canConvert(int) const", referenced from:
      _qmlrs_variant_get_type in libqmlrs.rlib(libqmlrswrapper.cpp.o)
  "QByteArray::reallocData(unsigned int, QFlags<QArrayData::AllocationOption>)", referenced from:
      QrsDynamicMetaObject::finalize() in libqmlrs.rlib(qrsdynamicobject.cpp.o)
  "QQmlApplicationEngine::QQmlApplicationEngine(QObject*)", referenced from:
      _qmlrs_create_engine in libqmlrs.rlib(libqmlrswrapper.cpp.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

error: aborting due to previous error
Could not compile 'qmlrs'.

Caused by:
  Process didn't exit successfully: 'rustc examples/factorial.rs --crate-name factorial --crate-type bin -g --out-dir /Users/igorkuznetsov/Projects/qmlrs/target/debug/examples --emit=dep-info,link -L dependency=/Users/igorkuznetsov/Projects/qmlrs/target/debug -L dependency=/Users/igorkuznetsov/Projects/qmlrs/target/debug/deps --extern libc=/Users/igorkuznetsov/Projects/qmlrs/target/debug/deps/liblibc-c862fb1c783dd674.rlib --extern qmlrs=/Users/igorkuznetsov/Projects/qmlrs/target/debug/libqmlrs.rlib -L native=/Users/igorkuznetsov/Projects/qmlrs/ext/libqmlrswrapper/build -L framework=/usr/local/Cellar/qt5/5.5.1_2/lib -L framework=/usr/local/Cellar/qt5/5.5.1_2/lib -L framework=/usr/local/Cellar/qt5/5.5.1_2/lib -L framework=/usr/local/Cellar/qt5/5.5.1_2/lib -L framework=/usr/local/Cellar/qt5/5.5.1_2/lib' (exit code: 101)

QT5 I installed with homebrew. I tryning all recommendation from issue #25, but no results.

Kroisse commented 8 years ago

I have a same issue. And I assume that libqmlrswrapper.a wasn't linked correctly during build.rs step, however it's ignored.

$ nm -u libqmlrswrapper.a

libqmlrswrapper.a(libqmlrswrapper.cpp.o):
__Unwind_Resume
__ZN10QArrayData10deallocateEPS_mm
__ZN10QByteArray11fromRawDataEPKci
__ZN10QByteArray11reallocDataEj6QFlagsIN10QArrayData16AllocationOptionEE
__ZN11QMetaObject12invokeMethodEP7QObjectPKcN2Qt14ConnectionTypeE22QGenericReturnArgument16QGenericArgumentS7_S7_S7_S7_S7_S7_S7_S7_S7_
__ZN11QQmlContext18setContextPropertyERK7QStringP7QObject
__ZN15QGuiApplication4execEv
__ZN15QGuiApplicationC1ERiPPci
__ZN16QCoreApplication4selfE
__ZN16QCoreApplicationC1ERiPPci
__ZN21QQmlApplicationEngine11rootObjectsEv
__ZN21QQmlApplicationEngine4loadERK4QUrl
__ZN21QQmlApplicationEngine8loadDataERK10QByteArrayRK4QUrl
__ZN21QQmlApplicationEngineC2EP7QObject
__ZN4QUrlC1ERK7QStringNS_11ParsingModeE
__ZN4QUrlC1Ev
__ZN4QUrlD1Ev
__ZN7QString13toUtf8_helperERKS_
__ZN7QString15fromUtf8_helperEPKci
__ZN8QVariantC1ERK7QString
__ZN8QVariantC1ERKS_
__ZN8QVariantC1Eb
__ZN8QVariantC1Ex
__ZN8QVariantD1Ev
__ZN8QVariantaSERKS_
__ZN9QListData11detach_growEPii
__ZN9QListData11shared_nullE
__ZN9QListData6appendEv
__ZN9QListData6detachEi
__ZN9QListData7disposeEPNS_4DataE
__ZNK10QQmlEngine11rootContextEv
__ZNK14QMessageLogger5fatalEPKcz
__ZNK8QVariant10canConvertEi
__ZNK8QVariant10toLongLongEPb
__ZNK8QVariant4typeEv
__ZNK8QVariant6toBoolEv
__ZNK8QVariant8toStringEv
__ZSt9terminatev
__ZTV20QrsApplicationEngine
__ZdlPv
__Znwm
___cxa_begin_catch
___cxa_end_catch
___cxa_rethrow
___gxx_personality_v0
_malloc
_memcpy
_strlen

libqmlrswrapper.a(qrsdynamicobject.cpp.o):
__Unwind_Resume
__Z9qBadAllocv
__ZN10QArrayData10deallocateEPS_mm
__ZN10QArrayData11shared_nullE
__ZN10QArrayData8allocateEmmm6QFlagsINS_16AllocationOptionEE
__ZN10QByteArray11reallocDataEj6QFlagsIN10QArrayData16AllocationOptionEE
__ZN10QByteArray6appendERKS_
__ZN10QByteArray6appendEc
__ZN11QMetaObject8activateEP7QObjectPKS_iPPv
__ZN7QObject10childEventEP11QChildEvent
__ZN7QObject10timerEventEP11QTimerEvent
__ZN7QObject11customEventEP6QEvent
__ZN7QObject11eventFilterEPS_P6QEvent
__ZN7QObject11qt_metacallEN11QMetaObject4CallEiPPv
__ZN7QObject13connectNotifyERK11QMetaMethod
__ZN7QObject16disconnectNotifyERK11QMetaMethod
__ZN7QObject16staticMetaObjectE
__ZN7QObject5eventEP6QEvent
__ZN7QObjectC2EPS_
__ZN7QObjectD2Ev
__ZN7QString13toUtf8_helperERKS_
__ZN7QString15fromUtf8_helperEPKci
__ZN7QString16fromAscii_helperEPKci
__ZN9QListData11detach_growEPii
__ZN9QListData11shared_nullE
__ZN9QListData5eraseEPPv
__ZN9QListData6appendEv
__ZN9QListData6detachEi
__ZN9QListData7disposeEPNS_4DataE
__ZNK14QMessageLogger7warningEPKcz
__ZNK7QString3argExii5QChar
__ZSt9terminatev
__ZTI7QObject
__ZTVN10__cxxabiv117__class_type_infoE
__ZTVN10__cxxabiv120__si_class_type_infoE
__ZdlPv
__Znam
__Znwm
___bzero
___cxa_begin_catch
___cxa_end_catch
___cxa_rethrow
___gxx_personality_v0
_memcpy

libqmlrswrapper.a(qrsdynamicobject_capi.cpp.o):
__Unwind_Resume
__ZN10QArrayData10deallocateEPS_mm
__ZN16QrsDynamicObject10emitSignalEi
__ZN20QrsDynamicMetaObject6createEPFPvS0_iPP8QVariantES0_
__ZN20QrsDynamicMetaObjectC1Ev
__ZN7QString15fromUtf8_helperEPKci
__ZN9QListData11detach_growEPii
__ZN9QListData6appendEv
__ZN9QListData7disposeEPNS_4DataE
__ZNK14QMessageLogger5fatalEPKcz
__ZSt9terminatev
__ZdlPv
__Znwm
___cxa_begin_catch
___cxa_end_catch
___cxa_rethrow
___gxx_personality_v0
_strlen

libqmlrswrapper.a(qmlrswrapper_automoc.cpp.o):
__Unwind_Resume
__ZN10QArrayData10deallocateEPS_mm
__ZN10QQmlEngine5eventEP6QEvent
__ZN20QrsApplicationEngine13invokeQmlSlotE7QString5QListI8QVariantE
__ZN21QQmlApplicationEngine11qt_metacallEN11QMetaObject4CallEiPPv
__ZN21QQmlApplicationEngine11qt_metacastEPKc
__ZN21QQmlApplicationEngine16staticMetaObjectE
__ZN21QQmlApplicationEngineD2Ev
__ZN7QObject10childEventEP11QChildEvent
__ZN7QObject10timerEventEP11QTimerEvent
__ZN7QObject11customEventEP6QEvent
__ZN7QObject11eventFilterEPS_P6QEvent
__ZN7QObject13connectNotifyERK11QMetaMethod
__ZN7QObject16disconnectNotifyERK11QMetaMethod
__ZN8QVariantC1ERKS_
__ZN8QVariantD1Ev
__ZN8QVariantaSERKS_
__ZN9QListData6detachEi
__ZN9QListData7disposeEPNS_4DataE
__ZNK11QObjectData17dynamicMetaObjectEv
__ZSt9terminatev
__ZTI21QQmlApplicationEngine
__ZTVN10__cxxabiv120__si_class_type_infoE
__ZdlPv
__Znwm
___cxa_begin_catch
___cxa_end_catch
___cxa_rethrow
___gxx_personality_v0
_strcmp
florianjacob commented 8 years ago

The fixes from #25 are allready integrated in current qmlrs, so they won't be of any help.

@tpickett66 or maybe @jxs, @SirVer anybody else on MacOSX who had it working before, can you reproduce this or look into this? I don't think I can help much without being able to try this out.

tpickett66 commented 8 years ago

All of my systems are running 10.10 and I can't afford the downtime associated with an update right now. Let me look into getting a VM running with 10.11.

Kroisse commented 8 years ago

It's a bug of pkg-config 0.3.7, and not related to the version of OS X. Here is the explanation:

(I've added panic!() to the last line of main() in build.rs, to inspect the stdout)

$ cargo clean && rm -r ext/libqmlrswrapper/build && cargo build
   Compiling pkg-config v0.3.7
   Compiling libc v0.2.7
   Compiling qmlrs v0.1.0 (file:///Volumes/Secondary/workspace/qmlrs)
failed to run custom build command for `qmlrs v0.1.0 (file:///Volumes/Secondary/workspace/qmlrs)`
Process didn't exit successfully: `/Volumes/Secondary/workspace/qmlrs/target/debug/build/qmlrs-65e8affe1a257700/build-script-build` (exit code: 101)
--- stdout
cargo:rustc-link-lib=static=qmlrswrapper
cargo:rustc-link-lib=dylib=stdc++
cargo:rustc-link-search=native=/Volumes/Secondary/workspace/qmlrs/ext/libqmlrswrapper/build
cargo:rustc-link-search=framework=/usr/local/Cellar/qt5/5.5.1_2/lib
cargo:rustc-link-search=framework=/usr/local/Cellar/qt5/5.5.1_2/lib
cargo:rustc-link-search=framework=/usr/local/Cellar/qt5/5.5.1_2/lib
cargo:rustc-link-search=framework=/usr/local/Cellar/qt5/5.5.1_2/lib
cargo:rustc-link-search=framework=/usr/local/Cellar/qt5/5.5.1_2/lib
cargo:cargo:rustc-link-lib=framework=QtQuick
cargo:cargo:rustc-link-lib=framework=QtGui
cargo:cargo:rustc-link-lib=framework=QtQml
cargo:cargo:rustc-link-lib=framework=QtNetwork
cargo:cargo:rustc-link-lib=framework=QtCore

--- stderr
thread '<main>' panicked at 'explicit panic', build.rs:80

As shown above, pkg_config::find_library() prints invalid build output like cargo:cargo:rustc-link-lib=framework=QtQuick.

It can be avoidable by fixing the build dependency to pkg_config = "=0.3.6".

$ cargo clean && rm -r ext/libqmlrswrapper/build && cargo build
    Updating registry `https://github.com/rust-lang/crates.io-index`
   Compiling pkg-config v0.3.6
   Compiling libc v0.2.7
   Compiling qmlrs v0.1.0 (file:///Volumes/Secondary/workspace/qmlrs)
failed to run custom build command for `qmlrs v0.1.0 (file:///Volumes/Secondary/workspace/qmlrs)`
Process didn't exit successfully: `/Volumes/Secondary/workspace/qmlrs/target/debug/build/qmlrs-65e8affe1a257700/build-script-build` (exit code: 101)
--- stdout
cargo:rustc-link-lib=static=qmlrswrapper
cargo:rustc-link-lib=dylib=stdc++
cargo:rustc-link-search=native=/Volumes/Secondary/workspace/qmlrs/ext/libqmlrswrapper/build
cargo:rustc-link-search=framework=/usr/local/Cellar/qt5/5.5.1_2/lib
cargo:rustc-link-search=framework=/usr/local/Cellar/qt5/5.5.1_2/lib
cargo:rustc-link-search=framework=/usr/local/Cellar/qt5/5.5.1_2/lib
cargo:rustc-link-search=framework=/usr/local/Cellar/qt5/5.5.1_2/lib
cargo:rustc-link-search=framework=/usr/local/Cellar/qt5/5.5.1_2/lib
cargo:rustc-link-lib=framework=QtQuick
cargo:rustc-link-lib=framework=QtGui
cargo:rustc-link-lib=framework=QtQml
cargo:rustc-link-lib=framework=QtNetwork
cargo:rustc-link-lib=framework=QtCore

--- stderr
thread '<main>' panicked at 'explicit panic', build.rs:80
florianjacob commented 8 years ago

@Kroisse thanks alot for your concise investigation and fixes! :+1: :grin:

e.g. @kuznetsovin, as I can't test this, could you verify that a downgrade of pkg-config to 0.3.6 via #40 fixes your problem? As soon as there's an independent confirmation, I'd publish a 0.1.1 version of qmlrs to fix this. Or maybe the upstream fix is faster with a pkg-config 0.3.8? Let's see.

It's a pitty pkg-config-rs doesn't have a proper changelog to see what the differences between the versions are… :confused:

kuznetsovin commented 8 years ago

@florianjacob fix #40 resolve the problem. Now all working fine. Thanks all.

florianjacob commented 8 years ago

Just released qmlrs 0.1.1 which pulls in pkg-config ^0.3.8 and should fix the problem. …

Oh, you were 16 seconds faster closing this, not bad. Glad to see it works now. :smile: