QtQuick interface for Rust

Related tags

GUI qmlrs
Overview

qmlrs - QtQuick bindings for Rust

Travis Build Status Coverage Status MIT licensed Apache licensed crates.io

Image of example

qmlrs allows the use of QML/QtQuick code from Rust, specifically

  • Rust code can create a QtQuick engine (QQmlApplicationEngine) with a loaded QML script
  • QML code can invoke Rust functions

…with certain limitations. The library should be safe (as in not unsafe) to use, but no promises at this time. Reviews of the code would be welcome.

News

See the Changelog for the version history and what's waiting in master to be released.

Requirements

The library consists of a Rust part and a C++ part. The C++ part will be compiled automatically when building with Cargo. You will need cmake, Qt5 and a C++ compiler that can compile Qt5 code. Your Qt5 installation should have at least the following modules: Core, Gui, Qml, Quick and Quick Controls.

If you are installing Qt5 from source, please note that passing "-noaccessibility" to the configure script disables the qtquickcontrols module.

Usage

Add the latest version of qmlrs from crates.io in your project's Cargo.toml.

Example

This is the Rust code for an application allowing the calculation of factorials. You can find the corresponding QML code in the examples directory.

#[macro_use]
extern crate qmlrs;

struct Factorial;
impl Factorial {
    fn calculate(&self, x: i64) -> i64 {
        (1..x+1).fold(1, |t,c| t * c)
    }
}

Q_OBJECT! { Factorial:
    slot fn calculate(i64);
}

fn main() {
    let mut engine = qmlrs::Engine::new();

    engine.set_property("factorial", Factorial);
    engine.load_local_file("examples/factorial_ui.qml");

    engine.exec();
}

To run the above example, execute cargo run --example factorial in the project's root directory.

Note regarding the Qt event loop and threads

Creating an Engine automatically initializes the Qt main event loop if one doesn't already exist. At least on some operating systems, the event loop must run on the main thread. Qt will tell you if you mess up. The .exec() method on views starts the event loop. This will block the thread until the window is closed.

Licensing

The code in this library is dual-licensed under the MIT license and the Apache License (version 2.0). See LICENSE-APACHE and LICENSE-MIT for details.

Comments
  • install problem on ubuntu

    install problem on ubuntu

    hi,

    i use ubuntu with rustc 1.2.0-nightly (764877650 2015-06-12) and qt: http://download.qt.io/official_releases/qt/5.4/5.4.2/qt-opensource-linux-x64-5.4.2.run any idea what is missing causing the build to fail?

    $ cargo build
    ...
    Compiling qmlrs v0.0.1 (file:///home/arnold/qmlrs)
    failed to run custom build command for `qmlrs v0.0.1 (file:///home/arnold/qmlrs)`
    Process didn't exit successfully: `/home/arnold/qmlrs/target/debug/build/qmlrs-0a6bb7a1b746b935/build-script-build` (exit code: 101)
    --- stdout
    cargo:rustc-link-lib=static=qmlrswrapper
    cargo:rustc-link-lib=dylib=stdc++
    cargo:rustc-link-search=native=/home/arnold/qmlrs/ext/libqmlrswrapper/build
    
    --- stderr
    thread '<main>' panicked at 'called `Result::unwrap()` on an `Err` value: "`\"pkg-config\" \"--libs\" \"--cflags\" \"Qt5Core Qt5Gui Qt5Qml Qt5Quick\"` did not exit successfully: exit code: 1\n--- stderr\nPackage Qt5Core was not found in the pkg-config search path.\nPerhaps you should add the directory containing `Qt5Core.pc\'\nto the PKG_CONFIG_PATH environment variable\nNo package \'Qt5Core\' found\nPackage Qt5Gui was not found in the pkg-config search path.\nPerhaps you should add the directory containing `Qt5Gui.pc\'\nto the PKG_CONFIG_PATH environment variable\nNo package \'Qt5Gui\' found\nPackage Qt5Qml was not found in the pkg-config search path.\nPerhaps you should add the directory containing `Qt5Qml.pc\'\nto the PKG_CONFIG_PATH environment variable\nNo package \'Qt5Qml\' found\nPackage Qt5Quick was not found in the pkg-config search path.\nPerhaps you should add the directory containing `Qt5Quick.pc\'\nto the PKG_CONFIG_PATH environment variable\nNo package \'Qt5Quick\' found\n"', /home/rustbuild/src/rust-buildbot/slave/nightly-dist-rustc-linux/build/src/libcore/result.rs:731
    
    opened by Arnold1 13
  • Finish (Travis) CI integration

    Finish (Travis) CI integration

    It would be really nice to have a CI integration that at least builds the library and the examples. There already exists https://travis-ci.org/cyndis/qmlrs/ from a year ago - maybe it can be brought to live with stable rust?

    opened by florianjacob 9
  • Fix QVariant enum

    Fix QVariant enum

    This enum does not match the one in ext/libqmlrswrapper/libqmlrswrapper.cpp (The rust version does not have a Bool slot). As a consequence, the enumeration values are different and hence QrsVariant::String has different values in rust and C. This caused a bug where the strings from QML were not recognised as strings by the Rust code (ffi::qmlrs_variant_get_type(var) != QrsVariantType::String). This commit seems to fix the issue, at least in regards to my own project.

    opened by Pavlos1 8
  • os x can't find qmlrswrapper

    os x can't find qmlrswrapper

    on os x 10.10 trying to compile qmlrs i get the following output:

       Compiling pkg-config v0.3.4 (https://github.com/alexcrichton/pkg-config-rs#9c3ba519)
         Running `rustc /Users/jxs/.cargo/git/checkouts/pkg-config-rs-330bae725d3e2739/master/src/lib.rs --crate-name pkg_config --crate-type lib -g -C metadata=b24ff58b6efa7118 -C extra-filename=-b24ff58b6efa7118 --out-dir /Volumes/data/dev/jxs/qmlrs/target/debug/deps --emit=dep-info,link -L dependency=/Volumes/data/dev/jxs/qmlrs/target/debug/deps -L dependency=/Volumes/data/dev/jxs/qmlrs/target/debug/deps -Awarnings`
       Compiling libc v0.1.8
         Running `rustc /Users/jxs/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.1.8/rust/src/liblibc/lib.rs --crate-name libc --crate-type lib -g --cfg feature="cargo-build" --cfg feature="default" -C metadata=2eda841eb12a3090 -C extra-filename=-2eda841eb12a3090 --out-dir /Volumes/data/dev/jxs/qmlrs/target/debug/deps --emit=dep-info,link -L dependency=/Volumes/data/dev/jxs/qmlrs/target/debug/deps -L dependency=/Volumes/data/dev/jxs/qmlrs/target/debug/deps -Awarnings`
       Compiling qmlrs v0.0.1 (file:///Volumes/data/dev/jxs/qmlrs)
         Running `rustc build.rs --crate-name build_script_build --crate-type bin -C prefer-dynamic -g --out-dir /Volumes/data/dev/jxs/qmlrs/target/debug/build/qmlrs-0e9eee83d78ff0e8 --emit=dep-info,link -L dependency=/Volumes/data/dev/jxs/qmlrs/target/debug -L dependency=/Volumes/data/dev/jxs/qmlrs/target/debug/deps --extern pkg_config=/Volumes/data/dev/jxs/qmlrs/target/debug/deps/libpkg_config-b24ff58b6efa7118.rlib`
         Running `/Volumes/data/dev/jxs/qmlrs/target/debug/build/qmlrs-0e9eee83d78ff0e8/build-script-build`
         Running `rustc src/lib.rs --crate-name qmlrs --crate-type lib -g --out-dir /Volumes/data/dev/jxs/qmlrs/target/debug --emit=dep-info,link -L dependency=/Volumes/data/dev/jxs/qmlrs/target/debug -L dependency=/Volumes/data/dev/jxs/qmlrs/target/debug/deps --extern libc=/Volumes/data/dev/jxs/qmlrs/target/debug/deps/liblibc-2eda841eb12a3090.rlib -L native=/Volumes/data/dev/jxs/qmlrs/ext/libqmlrswrapper/build -L framework=/usr/local/Cellar/qt5/5.4.1/lib -L framework=/usr/local/Cellar/qt5/5.4.1/lib -L framework=/usr/local/Cellar/qt5/5.4.1/lib -L framework=/usr/local/Cellar/qt5/5.4.1/lib -L framework=/usr/local/Cellar/qt5/5.4.1/lib -l static=qmlrswrapper -l dylib=stdc++ -l framework=QtQuick -l framework=QtGui -l framework=QtQml -l framework=QtNetwork -l framework=QtCore`
    error: could not find native static library `qmlrswrapper`, perhaps an -L flag is missing?
    Could not compile `qmlrs`.
    

    and if i list /Volumes/data/dev/jxs/qmlrs/ext/libqmlrswrapper/build folder i get:

    .
    ├── CMakeCache.txt
    └── CMakeFiles
        ├── 3.2.2
        │   ├── CMakeCCompiler.cmake
        │   ├── CMakeCXXCompiler.cmake
        │   ├── CMakeDetermineCompilerABI_C.bin
        │   ├── CMakeDetermineCompilerABI_CXX.bin
        │   ├── CMakeSystem.cmake
        │   ├── CompilerIdC
        │   │   ├── CMakeCCompilerId.c
        │   │   └── a.out
        │   └── CompilerIdCXX
        │       ├── CMakeCXXCompilerId.cpp
        │       └── a.out
        ├── CMakeOutput.log
        ├── CMakeTmp
        ├── cmake.check_cache
        ├── feature_tests.bin
        ├── feature_tests.c
        └── feature_tests.cxx
    
    

    thanks

    opened by jxs 8
  • Example not running on MacOS X 10.11

    Example not running on MacOS X 10.11

    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.

    opened by kuznetsovin 7
  • Make build.rs play nice with OSX + homebrew.

    Make build.rs play nice with OSX + homebrew.

    Since QT5 and QT4 supply many of the same libs and QT4 is much more widely used (according to the Formula's keg_only declaration) homebrew doesn't link QT5 by default. To work around this we need to nudge pkg-config and cmake in the right direction for them to find QT5.

    Fixes #25

    opened by tpickett66 7
  • Link errors when trying to build tests or examples on MacOS X

    Link errors when trying to build tests or examples on MacOS X

    Followup on https://github.com/cyndis/qmlrs/issues/14:

    This is on MacOS X 10.10.

    $ cargo --version
    cargo 0.5.0-nightly (1f24be7 2015-08-13)
    $ rustc --version
    rustc 1.4.0-nightly (f05b22efb 2015-08-15)
    
    $ git clone https://github.com/cyndis/qmlrs.git
    $ cd qmlrs
    $ export CMAKE_PREFIX_PATH=$(brew --prefix qt5)/lib/cmake/
    $ cargo build -v
        Updating registry `https://github.com/rust-lang/crates.io-index`
        Updating git repository `https://github.com/alexcrichton/pkg-config-rs`
       Compiling libc v0.1.10
         Running `rustc /Users/sirver/.multirust/toolchains/nightly/cargo/registry/src/github.com-0a35038f75765ae4/libc-0.1.10/rust/src/liblibc/lib.rs --crate-name libc --crate-type lib -g --cfg feature=\"default\" --cfg feature=\"cargo-build\" -C metadata=144c435538abd757 -C extra-filename=-144c435538abd757 --out-dir /private/tmp/qmlrs/target/debug/deps --emit=dep-info,link -L dependency=/private/tmp/qmlrs/target/debug/deps -L dependency=/private/tmp/qmlrs/target/debug/deps --cap-lints allow`
       Compiling pkg-config v0.3.5 (https://github.com/alexcrichton/pkg-config-rs#42f1704b)
         Running `rustc /Users/sirver/.multirust/toolchains/nightly/cargo/git/checkouts/pkg-config-rs-34acd6273d8a7d7a/master/src/lib.rs --crate-name pkg_config --crate-type lib -g -C metadata=25b537b84ffabba9 -C extra-filename=-25b537b84ffabba9 --out-dir /private/tmp/qmlrs/target/debug/deps --emit=dep-info,link -L dependency=/private/tmp/qmlrs/target/debug/deps -L dependency=/private/tmp/qmlrs/target/debug/deps --cap-lints allow`
       Compiling qmlrs v0.0.1 (file:///private/tmp/qmlrs)
         Running `rustc build.rs --crate-name build_script_build --crate-type bin -C prefer-dynamic -g --out-dir /private/tmp/qmlrs/target/debug/build/qmlrs-6b200e3e9d61f85f --emit=dep-info,link -L dependency=/private/tmp/qmlrs/target/debug -L dependency=/private/tmp/qmlrs/target/debug/deps --extern pkg_config=/private/tmp/qmlrs/target/debug/deps/libpkg_config-25b537b84ffabba9.rlib`
         Running `/private/tmp/qmlrs/target/debug/build/qmlrs-6b200e3e9d61f85f/build-script-build`
         Running `rustc src/lib.rs --crate-name qmlrs --crate-type lib -g --out-dir /private/tmp/qmlrs/target/debug --emit=dep-info,link -L dependency=/private/tmp/qmlrs/target/debug -L dependency=/private/tmp/qmlrs/target/debug/deps --extern libc=/private/tmp/qmlrs/target/debug/deps/liblibc-144c435538abd757.rlib -L native=/private/tmp/qmlrs/ext/libqmlrswrapper/build -L framework=/usr/local/Cellar/qt5/5.5.0/lib -L framework=/usr/local/Cellar/qt5/5.5.0/lib -L framework=/usr/local/Cellar/qt5/5.5.0/lib -L framework=/usr/local/Cellar/qt5/5.5.0/lib -L framework=/usr/local/Cellar/qt5/5.5.0/lib -l static=qmlrswrapper -l dylib=stdc++`
    src/variant.rs:12:5: 12:60 warning: the trait `core::marker::Sized` is not implemented for the type `Self` [E0277]
    src/variant.rs:12     fn from_qvariant(arg: *const QVariant) -> Option<Self>;
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    src/variant.rs:12:5: 12:60 help: run `rustc --explain E0277` to see a detailed explanation
    src/variant.rs:12:5: 12:60 note: `Self` does not have a constant size known at compile-time
    src/variant.rs:12     fn from_qvariant(arg: *const QVariant) -> Option<Self>;
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    src/variant.rs:12:5: 12:60 note: this warning results from recent bug fixes and clarifications; it will become a HARD ERROR in the next release. See RFC 1214 for details.
    src/variant.rs:12     fn from_qvariant(arg: *const QVariant) -> Option<Self>;
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    src/variant.rs:12:5: 12:60 note: required by `core::option::Option`
    src/variant.rs:12     fn from_qvariant(arg: *const QVariant) -> Option<Self>;
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    

    So far so good. Let's try tests:

    $ cargo test -v
           Fresh pkg-config v0.3.5 (https://github.com/alexcrichton/pkg-config-rs#42f1704b)
       Compiling qmlrs v0.0.1 (file:///private/tmp/qmlrs)
         Running `/private/tmp/qmlrs/target/debug/build/qmlrs-6b200e3e9d61f85f/build-script-build`
           Fresh libc v0.1.10
         Running `rustc src/lib.rs --crate-name qmlrs --crate-type lib -g --out-dir /private/tmp/qmlrs/target/debug --emit=dep-info,link -L dependency=/private/tmp/qmlrs/target/debug -L dependency=/private/tmp/qmlrs/target/debug/deps --extern libc=/private/tmp/qmlrs/target/debug/deps/liblibc-144c435538abd757.rlib -L native=/private/tmp/qmlrs/ext/libqmlrswrapper/build -L framework=/usr/local/Cellar/qt5/5.5.0/lib -L framework=/usr/local/Cellar/qt5/5.5.0/lib -L framework=/usr/local/Cellar/qt5/5.5.0/lib -L framework=/usr/local/Cellar/qt5/5.5.0/lib -L framework=/usr/local/Cellar/qt5/5.5.0/lib -l static=qmlrswrapper -l dylib=stdc++`
         Running `rustc src/lib.rs --crate-name qmlrs --crate-type lib -g --test -C metadata=f9b392aee7ed916b -C extra-filename=-f9b392aee7ed916b --out-dir /private/tmp/qmlrs/target/debug --emit=dep-info,link -L dependency=/private/tmp/qmlrs/target/debug -L dependency=/private/tmp/qmlrs/target/debug/deps --extern libc=/private/tmp/qmlrs/target/debug/deps/liblibc-144c435538abd757.rlib -L native=/private/tmp/qmlrs/ext/libqmlrswrapper/build -L framework=/usr/local/Cellar/qt5/5.5.0/lib -L framework=/usr/local/Cellar/qt5/5.5.0/lib -L framework=/usr/local/Cellar/qt5/5.5.0/lib -L framework=/usr/local/Cellar/qt5/5.5.0/lib -L framework=/usr/local/Cellar/qt5/5.5.0/lib -l static=qmlrswrapper -l dylib=stdc++`
    src/variant.rs:12:5: 12:60 warning: the trait `core::marker::Sized` is not implemented for the type `Self` [E0277]
    src/variant.rs:12     fn from_qvariant(arg: *const QVariant) -> Option<Self>;
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    src/variant.rs:12:5: 12:60 help: run `rustc --explain E0277` to see a detailed explanation
    src/variant.rs:12:5: 12:60 note: `Self` does not have a constant size known at compile-time
    src/variant.rs:12     fn from_qvariant(arg: *const QVariant) -> Option<Self>;
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    src/variant.rs:12:5: 12:60 note: this warning results from recent bug fixes and clarifications; it will become a HARD ERROR in the next release. See RFC 1214 for details.
    src/variant.rs:12     fn from_qvariant(arg: *const QVariant) -> Option<Self>;
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    src/variant.rs:12:5: 12:60 note: required by `core::option::Option`
    src/variant.rs:12     fn from_qvariant(arg: *const QVariant) -> Option<Self>;
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    src/variant.rs:12:5: 12:60 warning: the trait `core::marker::Sized` is not implemented for the type `Self` [E0277]
    src/variant.rs:12     fn from_qvariant(arg: *const QVariant) -> Option<Self>;
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    src/variant.rs:12:5: 12:60 help: run `rustc --explain E0277` to see a detailed explanation
    src/variant.rs:12:5: 12:60 note: `Self` does not have a constant size known at compile-time
    src/variant.rs:12     fn from_qvariant(arg: *const QVariant) -> Option<Self>;
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    src/variant.rs:12:5: 12:60 note: this warning results from recent bug fixes and clarifications; it will become a HARD ERROR in the next release. See RFC 1214 for details.
    src/variant.rs:12     fn from_qvariant(arg: *const QVariant) -> Option<Self>;
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    src/variant.rs:12:5: 12:60 note: required by `core::option::Option`
    src/variant.rs:12     fn from_qvariant(arg: *const QVariant) -> Option<Self>;
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         Running `rustc examples/factorial.rs --crate-name factorial --crate-type bin -g --out-dir /private/tmp/qmlrs/target/debug/examples --emit=dep-info,link -L dependency=/private/tmp/qmlrs/target/debug -L dependency=/private/tmp/qmlrs/target/debug/deps --extern libc=/private/tmp/qmlrs/target/debug/deps/liblibc-144c435538abd757.rlib --extern qmlrs=/private/tmp/qmlrs/target/debug/libqmlrs.rlib -L native=/private/tmp/qmlrs/ext/libqmlrswrapper/build -L framework=/usr/local/Cellar/qt5/5.5.0/lib -L framework=/usr/local/Cellar/qt5/5.5.0/lib -L framework=/usr/local/Cellar/qt5/5.5.0/lib -L framework=/usr/local/Cellar/qt5/5.5.0/lib -L framework=/usr/local/Cellar/qt5/5.5.0/lib -L native=/private/tmp/qmlrs/ext/libqmlrswrapper/build -L framework=/usr/local/Cellar/qt5/5.5.0/lib -L framework=/usr/local/Cellar/qt5/5.5.0/lib -L framework=/usr/local/Cellar/qt5/5.5.0/lib -L framework=/usr/local/Cellar/qt5/5.5.0/lib -L framework=/usr/local/Cellar/qt5/5.5.0/lib`
         Running `rustc tests/simple_test.rs --crate-name simple_test --crate-type bin -g --test -C metadata=7dba3db013d362e8 -C extra-filename=-7dba3db013d362e8 --out-dir /private/tmp/qmlrs/target/debug --emit=dep-info,link -L dependency=/private/tmp/qmlrs/target/debug -L dependency=/private/tmp/qmlrs/target/debug/deps --extern libc=/private/tmp/qmlrs/target/debug/deps/liblibc-144c435538abd757.rlib --extern qmlrs=/private/tmp/qmlrs/target/debug/libqmlrs.rlib -L native=/private/tmp/qmlrs/ext/libqmlrswrapper/build -L framework=/usr/local/Cellar/qt5/5.5.0/lib -L framework=/usr/local/Cellar/qt5/5.5.0/lib -L framework=/usr/local/Cellar/qt5/5.5.0/lib -L framework=/usr/local/Cellar/qt5/5.5.0/lib -L framework=/usr/local/Cellar/qt5/5.5.0/lib -L native=/private/tmp/qmlrs/ext/libqmlrswrapper/build -L framework=/usr/local/Cellar/qt5/5.5.0/lib -L framework=/usr/local/Cellar/qt5/5.5.0/lib -L framework=/usr/local/Cellar/qt5/5.5.0/lib -L framework=/usr/local/Cellar/qt5/5.5.0/lib -L framework=/usr/local/Cellar/qt5/5.5.0/lib`
    error: linking with `cc` failed: exit code: 1
    note: "cc" "-m64" "-L" "/Users/sirver/.multirust/toolchains/nightly/lib/rustlib/x86_64-apple-darwin/lib" "/private/tmp/qmlrs/target/debug/qmlrs-f9b392aee7ed916b.0.o" "-o" "/private/tmp/qmlrs/target/debug/qmlrs-f9b392aee7ed916b" "-Wl,-dead_strip" "-nodefaultlibs" "/Users/sirver/.multirust/toolchains/nightly/lib/rustlib/x86_64-apple-darwin/lib/libtest-35017696.rlib" "/Users/sirver/.multirust/toolchains/nightly/lib/rustlib/x86_64-apple-darwin/lib/libterm-35017696.rlib" "/Users/sirver/.multirust/toolchains/nightly/lib/rustlib/x86_64-apple-darwin/lib/libserialize-35017696.rlib" "/Users/sirver/.multirust/toolchains/nightly/lib/rustlib/x86_64-apple-darwin/lib/libgetopts-35017696.rlib" "/private/tmp/qmlrs/target/debug/deps/liblibc-144c435538abd757.rlib" "/Users/sirver/.multirust/toolchains/nightly/lib/rustlib/x86_64-apple-darwin/lib/liblog-35017696.rlib" "/Users/sirver/.multirust/toolchains/nightly/lib/rustlib/x86_64-apple-darwin/lib/libstd-35017696.rlib" "/Users/sirver/.multirust/toolchains/nightly/lib/rustlib/x86_64-apple-darwin/lib/libcollections-35017696.rlib" "/Users/sirver/.multirust/toolchains/nightly/lib/rustlib/x86_64-apple-darwin/lib/librustc_unicode-35017696.rlib" "/Users/sirver/.multirust/toolchains/nightly/lib/rustlib/x86_64-apple-darwin/lib/librand-35017696.rlib" "/Users/sirver/.multirust/toolchains/nightly/lib/rustlib/x86_64-apple-darwin/lib/liballoc-35017696.rlib" "/Users/sirver/.multirust/toolchains/nightly/lib/rustlib/x86_64-apple-darwin/lib/liballoc_jemalloc-35017696.rlib" "/Users/sirver/.multirust/toolchains/nightly/lib/rustlib/x86_64-apple-darwin/lib/liblibc-35017696.rlib" "/Users/sirver/.multirust/toolchains/nightly/lib/rustlib/x86_64-apple-darwin/lib/libcore-35017696.rlib" "-L" "/private/tmp/qmlrs/target/debug" "-L" "/private/tmp/qmlrs/target/debug/deps" "-L" "/private/tmp/qmlrs/ext/libqmlrswrapper/build" "-F" "/usr/local/Cellar/qt5/5.5.0/lib" "-F" "/usr/local/Cellar/qt5/5.5.0/lib" "-F" "/usr/local/Cellar/qt5/5.5.0/lib" "-F" "/usr/local/Cellar/qt5/5.5.0/lib" "-F" "/usr/local/Cellar/qt5/5.5.0/lib" "-L" "/Users/sirver/.multirust/toolchains/nightly/lib/rustlib/x86_64-apple-darwin/lib" "-L" "/private/tmp/qmlrs/.rust/lib/x86_64-apple-darwin" "-L" "/private/tmp/qmlrs/lib/x86_64-apple-darwin" "-Wl,-force_load,/private/tmp/qmlrs/ext/libqmlrswrapper/build/libqmlrswrapper.a" "-l" "stdc++" "-l" "c" "-l" "m" "-l" "System" "-l" "pthread" "-l" "c" "-l" "m" "-Wl,-rpath,@loader_path/../../../../../Users/sirver/.multirust/toolchains/nightly/lib/rustlib/x86_64-apple-darwin/lib" "-Wl,-rpath,/usr/local/lib/rustlib/x86_64-apple-darwin/lib" "-l" "compiler-rt"
    note: ld: warning: directory not found for option '-L/private/tmp/qmlrs/.rust/lib/x86_64-apple-darwin'
    ld: warning: directory not found for option '-L/private/tmp/qmlrs/lib/x86_64-apple-darwin'
    Undefined symbols for architecture x86_64:
      "typeinfo for QQmlApplicationEngine", referenced from:
          typeinfo for QrsApplicationEngine in libqmlrswrapper.a(qmlrswrapper_automoc.cpp.o)
      "QQmlEngine::event(QEvent*)", referenced from:
          vtable for QrsApplicationEngine in libqmlrswrapper.a(qmlrswrapper_automoc.cpp.o)
      "QObject::eventFilter(QObject*, QEvent*)", referenced from:
          vtable for QrsApplicationEngine in libqmlrswrapper.a(qmlrswrapper_automoc.cpp.o)
      "QObject::childEvent(QChildEvent*)", referenced from:
          vtable for QrsApplicationEngine in libqmlrswrapper.a(qmlrswrapper_automoc.cpp.o)
      "QObject::connectNotify(QMetaMethod const&)", referenced from:
          vtable for QrsApplicationEngine in libqmlrswrapper.a(qmlrswrapper_automoc.cpp.o)
      "QQmlApplicationEngine::qt_metacast(char const*)", referenced from:
          QrsApplicationEngine::qt_metacast(char const*) in libqmlrswrapper.a(qmlrswrapper_automoc.cpp.o)
      "QObjectData::dynamicMetaObject() const", referenced from:
          QrsApplicationEngine::metaObject() const in libqmlrswrapper.a(qmlrswrapper_automoc.cpp.o)
      "QQmlApplicationEngine::staticMetaObject", referenced from:
          QrsApplicationEngine::staticMetaObject in libqmlrswrapper.a(qmlrswrapper_automoc.cpp.o)
      "QQmlApplicationEngine::~QQmlApplicationEngine()", referenced from:
          QrsApplicationEngine::~QrsApplicationEngine() in libqmlrswrapper.a(qmlrswrapper_automoc.cpp.o)
          QrsApplicationEngine::~QrsApplicationEngine() in libqmlrswrapper.a(qmlrswrapper_automoc.cpp.o)
      "QVariant::operator=(QVariant const&)", referenced from:
          QrsApplicationEngine::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) in libqmlrswrapper.a(qmlrswrapper_automoc.cpp.o)
      "QVariant::QVariant(QVariant const&)", referenced from:
          QList<QVariant>::node_copy(QList<QVariant>::Node*, QList<QVariant>::Node*, QList<QVariant>::Node*) in libqmlrswrapper.a(libqmlrswrapper.cpp.o)
      "QObject::disconnectNotify(QMetaMethod const&)", referenced from:
          vtable for QrsApplicationEngine in libqmlrswrapper.a(qmlrswrapper_automoc.cpp.o)
      "QCoreApplication::self", referenced from:
          _qmlrs_create_engine_headless in libqmlrswrapper.a(libqmlrswrapper.cpp.o)
      "QArrayData::deallocate(QArrayData*, unsigned long, unsigned long)", referenced from:
          QrsApplicationEngine::invokeQmlSlot(QString, QList<QVariant>) in libqmlrswrapper.a(libqmlrswrapper.cpp.o)
          QrsApplicationEngine::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) in libqmlrswrapper.a(qmlrswrapper_automoc.cpp.o)
      "QListData::dispose(QListData::Data*)", referenced from:
          QrsApplicationEngine::invokeQmlSlot(QString, QList<QVariant>) in libqmlrswrapper.a(libqmlrswrapper.cpp.o)
          QList<QVariant>::detach_helper(int) in libqmlrswrapper.a(libqmlrswrapper.cpp.o)
          QrsApplicationEngine::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) in libqmlrswrapper.a(qmlrswrapper_automoc.cpp.o)
          QList<QVariant>::QList(QList<QVariant> const&) in libqmlrswrapper.a(qmlrswrapper_automoc.cpp.o)
      "QString::toUtf8_helper(QString const&)", referenced from:
          QrsApplicationEngine::invokeQmlSlot(QString, QList<QVariant>) in libqmlrswrapper.a(libqmlrswrapper.cpp.o)
      "QQmlApplicationEngine::rootObjects()", referenced from:
          QrsApplicationEngine::invokeQmlSlot(QString, QList<QVariant>) in libqmlrswrapper.a(libqmlrswrapper.cpp.o)
      "QListData::detach(int)", referenced from:
          QrsApplicationEngine::invokeQmlSlot(QString, QList<QVariant>) in libqmlrswrapper.a(libqmlrswrapper.cpp.o)
          QList<QVariant>::detach_helper(int) in libqmlrswrapper.a(libqmlrswrapper.cpp.o)
          QList<QVariant>::QList(QList<QVariant> const&) in libqmlrswrapper.a(qmlrswrapper_automoc.cpp.o)
      "QVariant::~QVariant()", referenced from:
          QrsApplicationEngine::invokeQmlSlot(QString, QList<QVariant>) in libqmlrswrapper.a(libqmlrswrapper.cpp.o)
          QList<QVariant>::detach_helper(int) in libqmlrswrapper.a(libqmlrswrapper.cpp.o)
          QList<QVariant>::node_copy(QList<QVariant>::Node*, QList<QVariant>::Node*, QList<QVariant>::Node*) in libqmlrswrapper.a(libqmlrswrapper.cpp.o)
          QrsApplicationEngine::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) in libqmlrswrapper.a(qmlrswrapper_automoc.cpp.o)
      "QObject::customEvent(QEvent*)", referenced from:
          vtable for QrsApplicationEngine in libqmlrswrapper.a(qmlrswrapper_automoc.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 libqmlrswrapper.a(libqmlrswrapper.cpp.o)
      "QObject::timerEvent(QTimerEvent*)", referenced from:
          vtable for QrsApplicationEngine in libqmlrswrapper.a(qmlrswrapper_automoc.cpp.o)
      "QCoreApplication::QCoreApplication(int&, char**, int)", referenced from:
          _qmlrs_create_engine_headless in libqmlrswrapper.a(libqmlrswrapper.cpp.o)
      "QQmlApplicationEngine::qt_metacall(QMetaObject::Call, int, void**)", referenced from:
          QrsApplicationEngine::qt_metacall(QMetaObject::Call, int, void**) in libqmlrswrapper.a(qmlrswrapper_automoc.cpp.o)
      "QQmlApplicationEngine::QQmlApplicationEngine(QObject*)", referenced from:
          _qmlrs_create_engine_headless in libqmlrswrapper.a(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
    Build failed, waiting for other jobs to finish...
    error: linking with `cc` failed: exit code: 1
    note: "cc" "-m64" "-L" "/Users/sirver/.multirust/toolchains/nightly/lib/rustlib/x86_64-apple-darwin/lib" "/private/tmp/qmlrs/target/debug/simple_test-7dba3db013d362e8.0.o" "-o" "/private/tmp/qmlrs/target/debug/simple_test-7dba3db013d362e8" "-Wl,-dead_strip" "-nodefaultlibs" "/Users/sirver/.multirust/toolchains/nightly/lib/rustlib/x86_64-apple-darwin/lib/libtest-35017696.rlib" "/Users/sirver/.multirust/toolchains/nightly/lib/rustlib/x86_64-apple-darwin/lib/libgetopts-35017696.rlib" "/private/tmp/qmlrs/target/debug/libqmlrs.rlib" "/private/tmp/qmlrs/target/debug/deps/liblibc-144c435538abd757.rlib" "/Users/sirver/.multirust/toolchains/nightly/lib/rustlib/x86_64-apple-darwin/lib/libterm-35017696.rlib" "/Users/sirver/.multirust/toolchains/nightly/lib/rustlib/x86_64-apple-darwin/lib/libserialize-35017696.rlib" "/Users/sirver/.multirust/toolchains/nightly/lib/rustlib/x86_64-apple-darwin/lib/liblog-35017696.rlib" "/Users/sirver/.multirust/toolchains/nightly/lib/rustlib/x86_64-apple-darwin/lib/libstd-35017696.rlib" "/Users/sirver/.multirust/toolchains/nightly/lib/rustlib/x86_64-apple-darwin/lib/libcollections-35017696.rlib" "/Users/sirver/.multirust/toolchains/nightly/lib/rustlib/x86_64-apple-darwin/lib/librustc_unicode-35017696.rlib" "/Users/sirver/.multirust/toolchains/nightly/lib/rustlib/x86_64-apple-darwin/lib/librand-35017696.rlib" "/Users/sirver/.multirust/toolchains/nightly/lib/rustlib/x86_64-apple-darwin/lib/liballoc-35017696.rlib" "/Users/sirver/.multirust/toolchains/nightly/lib/rustlib/x86_64-apple-darwin/lib/liballoc_jemalloc-35017696.rlib" "/Users/sirver/.multirust/toolchains/nightly/lib/rustlib/x86_64-apple-darwin/lib/liblibc-35017696.rlib" "/Users/sirver/.multirust/toolchains/nightly/lib/rustlib/x86_64-apple-darwin/lib/libcore-35017696.rlib" "-L" "/private/tmp/qmlrs/target/debug" "-L" "/private/tmp/qmlrs/target/debug/deps" "-L" "/private/tmp/qmlrs/ext/libqmlrswrapper/build" "-F" "/usr/local/Cellar/qt5/5.5.0/lib" "-F" "/usr/local/Cellar/qt5/5.5.0/lib" "-F" "/usr/local/Cellar/qt5/5.5.0/lib" "-F" "/usr/local/Cellar/qt5/5.5.0/lib" "-F" "/usr/local/Cellar/qt5/5.5.0/lib" "-L" "/private/tmp/qmlrs/ext/libqmlrswrapper/build" "-F" "/usr/local/Cellar/qt5/5.5.0/lib" "-F" "/usr/local/Cellar/qt5/5.5.0/lib" "-F" "/usr/local/Cellar/qt5/5.5.0/lib" "-F" "/usr/local/Cellar/qt5/5.5.0/lib" "-F" "/usr/local/Cellar/qt5/5.5.0/lib" "-L" "/Users/sirver/.multirust/toolchains/nightly/lib/rustlib/x86_64-apple-darwin/lib" "-L" "/private/tmp/qmlrs/.rust/lib/x86_64-apple-darwin" "-L" "/private/tmp/qmlrs/lib/x86_64-apple-darwin" "-l" "stdc++" "-l" "c" "-l" "m" "-l" "System" "-l" "pthread" "-l" "c" "-l" "m" "-Wl,-rpath,@loader_path/../../../../../Users/sirver/.multirust/toolchains/nightly/lib/rustlib/x86_64-apple-darwin/lib" "-Wl,-rpath,/usr/local/lib/rustlib/x86_64-apple-darwin/lib" "-l" "compiler-rt"
    note: ld: warning: directory not found for option '-L/private/tmp/qmlrs/.rust/lib/x86_64-apple-darwin'
    ld: warning: directory not found for option '-L/private/tmp/qmlrs/lib/x86_64-apple-darwin'
    Undefined symbols for architecture x86_64:
      "typeinfo for QQmlApplicationEngine", referenced from:
          typeinfo for QrsApplicationEngine in libqmlrs.rlib(qmlrswrapper_automoc.cpp.o)
      "QQmlEngine::event(QEvent*)", referenced from:
          vtable for QrsApplicationEngine in libqmlrs.rlib(qmlrswrapper_automoc.cpp.o)
      "QObject::eventFilter(QObject*, QEvent*)", referenced from:
          vtable for QrsApplicationEngine in libqmlrs.rlib(qmlrswrapper_automoc.cpp.o)
      "QObject::timerEvent(QTimerEvent*)", referenced from:
          vtable for QrsApplicationEngine in libqmlrs.rlib(qmlrswrapper_automoc.cpp.o)
      "QObject::childEvent(QChildEvent*)", referenced from:
          vtable for QrsApplicationEngine in libqmlrs.rlib(qmlrswrapper_automoc.cpp.o)
      "QObject::customEvent(QEvent*)", referenced from:
          vtable for QrsApplicationEngine in libqmlrs.rlib(qmlrswrapper_automoc.cpp.o)
      "QObject::connectNotify(QMetaMethod const&)", referenced from:
          vtable for QrsApplicationEngine 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)
      "QQmlApplicationEngine::load(QUrl const&)", referenced from:
          _qmlrs_engine_load_url in libqmlrs.rlib(libqmlrswrapper.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<QVariant>::QList(QList<QVariant> const&) in libqmlrs.rlib(qmlrswrapper_automoc.cpp.o)
      "QQmlApplicationEngine::rootObjects()", referenced from:
          QrsApplicationEngine::invokeQmlSlot(QString, QList<QVariant>) in libqmlrs.rlib(libqmlrswrapper.cpp.o)
      "QString::toUtf8_helper(QString const&)", referenced from:
          QrsApplicationEngine::invokeQmlSlot(QString, QList<QVariant>) in libqmlrs.rlib(libqmlrswrapper.cpp.o)
      "QGuiApplication::exec()", referenced from:
          _qmlrs_app_exec in libqmlrs.rlib(libqmlrswrapper.cpp.o)
      "QCoreApplication::QCoreApplication(int&, char**, int)", referenced from:
          _qmlrs_create_engine_headless in libqmlrs.rlib(libqmlrswrapper.cpp.o)
      "QUrl::QUrl(QString const&, QUrl::ParsingMode)", referenced from:
          _qmlrs_engine_load_url in libqmlrs.rlib(libqmlrswrapper.cpp.o)
      "QVariant::~QVariant()", 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<QVariant>::node_copy(QList<QVariant>::Node*, QList<QVariant>::Node*, QList<QVariant>::Node*) in libqmlrs.rlib(libqmlrswrapper.cpp.o)
          QrsApplicationEngine::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) in libqmlrs.rlib(qmlrswrapper_automoc.cpp.o)
      "QObject::disconnectNotify(QMetaMethod const&)", referenced from:
          vtable for QrsApplicationEngine in libqmlrs.rlib(qmlrswrapper_automoc.cpp.o)
      "QCoreApplication::self", referenced from:
          _qmlrs_create_engine_headless in libqmlrs.rlib(libqmlrswrapper.cpp.o)
      "QArrayData::deallocate(QArrayData*, unsigned long, unsigned long)", referenced from:
          _qmlrs_engine_load_url in libqmlrs.rlib(libqmlrswrapper.cpp.o)
          QrsApplicationEngine::invokeQmlSlot(QString, QList<QVariant>) in libqmlrs.rlib(libqmlrswrapper.cpp.o)
          QrsApplicationEngine::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) in libqmlrs.rlib(qmlrswrapper_automoc.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)
          QrsApplicationEngine::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) in libqmlrs.rlib(qmlrswrapper_automoc.cpp.o)
          QList<QVariant>::QList(QList<QVariant> const&) in libqmlrs.rlib(qmlrswrapper_automoc.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)
      "QString::fromUtf8_helper(char const*, int)", referenced from:
          _qmlrs_engine_load_url in libqmlrs.rlib(libqmlrswrapper.cpp.o)
      "QQmlApplicationEngine::staticMetaObject", referenced from:
          QrsApplicationEngine::staticMetaObject 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)
      "QVariant::operator=(QVariant const&)", referenced from:
          QrsApplicationEngine::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) in libqmlrs.rlib(qmlrswrapper_automoc.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)
      "QUrl::~QUrl()", referenced from:
          _qmlrs_engine_load_url in libqmlrs.rlib(libqmlrswrapper.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::QQmlApplicationEngine(QObject*)", referenced from:
          _qmlrs_create_engine_headless 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
    error: linking with `cc` failed: exit code: 1
    note: "cc" "-m64" "-L" "/Users/sirver/.multirust/toolchains/nightly/lib/rustlib/x86_64-apple-darwin/lib" "/private/tmp/qmlrs/target/debug/examples/factorial.0.o" "-o" "/private/tmp/qmlrs/target/debug/examples/factorial" "-Wl,-dead_strip" "-nodefaultlibs" "/private/tmp/qmlrs/target/debug/libqmlrs.rlib" "/private/tmp/qmlrs/target/debug/deps/liblibc-144c435538abd757.rlib" "/Users/sirver/.multirust/toolchains/nightly/lib/rustlib/x86_64-apple-darwin/lib/libstd-35017696.rlib" "/Users/sirver/.multirust/toolchains/nightly/lib/rustlib/x86_64-apple-darwin/lib/libcollections-35017696.rlib" "/Users/sirver/.multirust/toolchains/nightly/lib/rustlib/x86_64-apple-darwin/lib/librustc_unicode-35017696.rlib" "/Users/sirver/.multirust/toolchains/nightly/lib/rustlib/x86_64-apple-darwin/lib/librand-35017696.rlib" "/Users/sirver/.multirust/toolchains/nightly/lib/rustlib/x86_64-apple-darwin/lib/liballoc-35017696.rlib" "/Users/sirver/.multirust/toolchains/nightly/lib/rustlib/x86_64-apple-darwin/lib/liballoc_jemalloc-35017696.rlib" "/Users/sirver/.multirust/toolchains/nightly/lib/rustlib/x86_64-apple-darwin/lib/liblibc-35017696.rlib" "/Users/sirver/.multirust/toolchains/nightly/lib/rustlib/x86_64-apple-darwin/lib/libcore-35017696.rlib" "-L" "/private/tmp/qmlrs/target/debug" "-L" "/private/tmp/qmlrs/target/debug/deps" "-L" "/private/tmp/qmlrs/ext/libqmlrswrapper/build" "-F" "/usr/local/Cellar/qt5/5.5.0/lib" "-F" "/usr/local/Cellar/qt5/5.5.0/lib" "-F" "/usr/local/Cellar/qt5/5.5.0/lib" "-F" "/usr/local/Cellar/qt5/5.5.0/lib" "-F" "/usr/local/Cellar/qt5/5.5.0/lib" "-L" "/private/tmp/qmlrs/ext/libqmlrswrapper/build" "-F" "/usr/local/Cellar/qt5/5.5.0/lib" "-F" "/usr/local/Cellar/qt5/5.5.0/lib" "-F" "/usr/local/Cellar/qt5/5.5.0/lib" "-F" "/usr/local/Cellar/qt5/5.5.0/lib" "-F" "/usr/local/Cellar/qt5/5.5.0/lib" "-L" "/Users/sirver/.multirust/toolchains/nightly/lib/rustlib/x86_64-apple-darwin/lib" "-L" "/private/tmp/qmlrs/.rust/lib/x86_64-apple-darwin" "-L" "/private/tmp/qmlrs/lib/x86_64-apple-darwin" "-l" "stdc++" "-l" "c" "-l" "m" "-l" "System" "-l" "pthread" "-l" "c" "-l" "m" "-Wl,-rpath,@loader_path/../../../../../../Users/sirver/.multirust/toolchains/nightly/lib/rustlib/x86_64-apple-darwin/lib" "-Wl,-rpath,/usr/local/lib/rustlib/x86_64-apple-darwin/lib" "-l" "compiler-rt"
    note: ld: warning: directory not found for option '-L/private/tmp/qmlrs/.rust/lib/x86_64-apple-darwin'
    ld: warning: directory not found for option '-L/private/tmp/qmlrs/lib/x86_64-apple-darwin'
    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::event(QEvent*)", referenced from:
          vtable for QrsDynamicObject in libqmlrs.rlib(qrsdynamicobject.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)
      "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)
          _qmlrs_engine_load_from_data 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)
      "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)
      "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)
      "QQmlApplicationEngine::loadData(QByteArray const&, QUrl const&)", referenced from:
          _qmlrs_engine_load_from_data in libqmlrs.rlib(libqmlrswrapper.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)
      "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>::detach_helper(int) 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)
          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)
      "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<unsigned int>::detach_helper_grow(int, 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_load_from_data 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)
          ...
      "QQmlEngine::rootContext() const", referenced from:
          _qmlrs_engine_set_property in libqmlrs.rlib(libqmlrswrapper.cpp.o)
      "QUrl::QUrl(QString const&, QUrl::ParsingMode)", referenced from:
          _qmlrs_engine_load_url in libqmlrs.rlib(libqmlrswrapper.cpp.o)
      "QQmlApplicationEngine::load(QUrl const&)", 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)
      "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)
      "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)
      "QObject::qt_metacall(QMetaObject::Call, int, void**)", referenced from:
          QrsDynamicObject::qt_metacall(QMetaObject::Call, int, void**) in libqmlrs.rlib(qrsdynamicobject.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)
      "QByteArray::fromRawData(char const*, int)", referenced from:
          _qmlrs_engine_load_from_data in libqmlrs.rlib(libqmlrswrapper.cpp.o)
      "QObject::staticMetaObject", referenced from:
          QrsDynamicMetaObject::finalize() 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)
      "QUrl::QUrl()", referenced from:
          _qmlrs_engine_load_from_data in libqmlrs.rlib(libqmlrswrapper.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)
      "QString::arg(long long, int, int, QChar) const", referenced from:
          QrsDynamicMetaObject::finalize() in libqmlrs.rlib(qrsdynamicobject.cpp.o)
      "QVariant::toLongLong(bool*) const", referenced from:
          _qmlrs_variant_get_int64 in libqmlrs.rlib(libqmlrswrapper.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)
      "QVariant::QVariant(long long)", referenced from:
          _qmlrs_variant_set_int64 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 src/lib.rs --crate-name qmlrs --crate-type lib -g --test -C metadata=f9b392aee7ed916b -C extra-filename=-f9b392aee7ed916b --out-dir /private/tmp/qmlrs/target/debug --emit=dep-info,link -L dependency=/private/tmp/qmlrs/target/debug -L dependency=/private/tmp/qmlrs/target/debug/deps --extern libc=/private/tmp/qmlrs/target/debug/deps/liblibc-144c435538abd757.rlib -L native=/private/tmp/qmlrs/ext/libqmlrswrapper/build -L framework=/usr/local/Cellar/qt5/5.5.0/lib -L framework=/usr/local/Cellar/qt5/5.5.0/lib -L framework=/usr/local/Cellar/qt5/5.5.0/lib -L framework=/usr/local/Cellar/qt5/5.5.0/lib -L framework=/usr/local/Cellar/qt5/5.5.0/lib -l static=qmlrswrapper -l dylib=stdc++` (exit code: 101)
    
    opened by SirVer 6
  • Build fixes

    Build fixes

    Some small fixes that I discovered while trying to build qmlrs. Please read each commit description and cherry-pick which changes you want. Let me know if you have any questions. Thanks!

    opened by miv-ableton 5
  • qmlrs not building static library

    qmlrs not building static library

    Starting with a bare project I added the qmlrs requirement (0.1.1) and built it. It failed to build the static library.

    I didn't install Qt5 from homebrew. Instead I symlinked it to the real location. However the pkgconfig directory and everything else is there, so it should still work.

    cmake and pkg-config work.

    cargo build --release -v
           Fresh pkg-config v0.3.8
           Fresh libc v0.2.9
       Compiling qmlrs v0.1.1
         Running `rustc /Users/miv/.cargo/registry/src/github.com-88ac128001ac3a9a/qmlrs-0.1.1/src/lib.rs --crate-name qmlrs --crate-type lib -C opt-level=3 -C metadata=689195b474c08d62 -C extra-filename=-689195b474c08d62 --out-dir /Users/miv/projects/qmlrstest/target/release/deps --emit=dep-info,link -L dependency=/Users/miv/projects/qmlrstest/target/release/deps -L dependency=/Users/miv/projects/qmlrstest/target/release/deps --extern libc=/Users/miv/projects/qmlrstest/target/release/deps/liblibc-d2268fc21ed63f2c.rlib --cap-lints allow -L native=/Users/miv/.cargo/registry/src/github.com-88ac128001ac3a9a/qmlrs-0.1.1/ext/libqmlrswrapper/build -L framework=/Volumes/GuiEnv_v5.5.0-abl4_64/Qt5.5.0/clang_64/lib -L framework=/Volumes/GuiEnv_v5.5.0-abl4_64/Qt5.5.0/clang_64/lib -L framework=/Volumes/GuiEnv_v5.5.0-abl4_64/Qt5.5.0/clang_64/lib -L framework=/Volumes/GuiEnv_v5.5.0-abl4_64/Qt5.5.0/clang_64/lib -L framework=/Volumes/GuiEnv_v5.5.0-abl4_64/Qt5.5.0/clang_64/lib -l static=qmlrswrapper -l dylib=stdc++`
    error: could not find native static library `qmlrswrapper`, perhaps an -L flag is missing?
    Could not compile `qmlrs`.
    
    Caused by:
      Process didn't exit successfully: `rustc /Users/miv/.cargo/registry/src/github.com-88ac128001ac3a9a/qmlrs-0.1.1/src/lib.rs --crate-name qmlrs --crate-type lib -C opt-level=3 -C metadata=689195b474c08d62 -C extra-filename=-689195b474c08d62 --out-dir /Users/miv/projects/qmlrstest/target/release/deps --emit=dep-info,link -L dependency=/Users/miv/projects/qmlrstest/target/release/deps -L dependency=/Users/miv/projects/qmlrstest/target/release/deps --extern libc=/Users/miv/projects/qmlrstest/target/release/deps/liblibc-d2268fc21ed63f2c.rlib --cap-lints allow -L native=/Users/miv/.cargo/registry/src/github.com-88ac128001ac3a9a/qmlrs-0.1.1/ext/libqmlrswrapper/build -L framework=/Volumes/GuiEnv_v5.5.0-abl4_64/Qt5.5.0/clang_64/lib -L framework=/Volumes/GuiEnv_v5.5.0-abl4_64/Qt5.5.0/clang_64/lib -L framework=/Volumes/GuiEnv_v5.5.0-abl4_64/Qt5.5.0/clang_64/lib -L framework=/Volumes/GuiEnv_v5.5.0-abl4_64/Qt5.5.0/clang_64/lib -L framework=/Volumes/GuiEnv_v5.5.0-abl4_64/Qt5.5.0/clang_64/lib -l static=qmlrswrapper -l dylib=stdc++` (exit code: 101)
    
    opened by miv-ableton 5
  • White-Oak/qml-rust

    White-Oak/qml-rust

    Is there any relation to White-Oak/qml-rust? is this a parallel project with the same aims? Wouldn't it be good to join your forces? I'd love to see good,stable Qt5/QML bindings for Rust - but developing 2 different in parallel is a bit much of a needless effort?

    Don't get me wrong, this is just a qustion.

    opened by nerdoc 3
  • Compile error on OSX

    Compile error on OSX

    When used as a dependency with cargo, the following error occurs:

        Updating git repository `https://github.com/cyndis/qmlrs.git`
        Updating registry `https://github.com/rust-lang/crates.io-index`
       Compiling pkg-config v0.3.8
       Compiling libc v0.2.11
       Compiling qmlrs v0.1.1 (https://github.com/cyndis/qmlrs.git#ff28b56a)
    /Users/matthew/.cargo/git/checkouts/qmlrs-521912f04de8f24e/master/build.rs:54:25: 54:33 error: no method named `exists` found for type `std::path::PathBuf` in the current scope
    /Users/matthew/.cargo/git/checkouts/qmlrs-521912f04de8f24e/master/build.rs:54         if qt5_lib_path.exists() {
                                                                                                          ^~~~~~~~
    /Users/matthew/.cargo/git/checkouts/qmlrs-521912f04de8f24e/master/build.rs:54:25: 54:33 help: items from traits can only be used if the trait is in scope; the following trait is implemented but not in scope, perhaps add a `use` for it:
    /Users/matthew/.cargo/git/checkouts/qmlrs-521912f04de8f24e/master/build.rs:54:25: 54:33 help: candidate #1: use `std::fs::PathExt`
    error: aborting due to previous error
    Could not compile `qmlrs`.
    

    I have installed both rust and qt5 using homebrew. I also tried using both the git dependency and the 0.1.1 version from crates.io. Any help would be appreciated!

    Thanks!

    opened by mpiannucci 3
  • Trying to cargo build on OS X Mojave

    Trying to cargo build on OS X Mojave

    When I attempt to run cargo run --example factorial

    I get the below error library not found for -lstdc++

    I have googled this and it appears that stdlib has changed in XCODE

    recommendations are to replace the following in the CMakeLists.txt file set(CMAKE_CXX_FLAGS "-stdlib=libc++")

    I have performed this step and still get the above error. It appears that the changes in CMakeList.txt file are not being read.

    Is there another location in the build process that I can change the stdlib?

    Thanks

    Joe

    opened by jpitz31 1
  • Support ChartView

    Support ChartView

    Without this a qml file using a ChartView will crash at runtime. According to https://stackoverflow.com/questions/51532648/qml-crash-in-qt-5-9-help-to-read-stack-trace this is expected and an application using ChartView needs to use QApplication instead of QGuiApplication. This also matches the Qt Charts documentation:

    Note: Projects created with Qt Creator's Qt Quick Application wizard are based on the Qt Quick 2 template that uses QGuiApplication by default. All such QGuiApplication instances in the project must be replaced with QApplication as the module depends on Qt's Graphics View Framework for rendering.

    opened by rnestler 0
  • Can't build qmlrs because CMake can't find Qt5 (Windows)

    Can't build qmlrs because CMake can't find Qt5 (Windows)

    When building qmlrs, I got this error message:

    thread 'main' panicked at 'cmake produced stderr: CMake Warning at CMakeLists.txt:24 (find_package):
      By not providing "FindQt5Core.cmake" in CMAKE_MODULE_PATH this project has
      asked CMake to find a package configuration file provided by "Qt5Core", but
      CMake did not find one.
    
      Could not find a package configuration file provided by "Qt5Core" with any
      of the following names:
    
        Qt5CoreConfig.cmake
        qt5core-config.cmake
    
      Add the installation prefix of "Qt5Core" to CMAKE_PREFIX_PATH or set
      "Qt5Core_DIR" to a directory containing one of the above files.  If
      "Qt5Core" provides a separate development package or SDK, be sure it has
      been installed.
     ...
    

    It goes on but it is all related to not being able to find Qt.

    I tried to fix this by setting the CMAKE_PREFIX_PATH: set(CMAKE_PREFIX_PATH "E:/Qt/5.9.1/mingw53_32/"), but that doesn't seem to work at all.

    I had to set each packages path individually for that error to go away:

    set(Qt5Core_DIR "E:/Qt/5.9.1/msvc2017_64/lib/cmake/Qt5core")
    set(Qt5Quick_DIR "E:/Qt/5.9.1/msvc2017_64/lib/cmake/Qt5Quick")
    

    But then another error showed up:

    thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: "`\"pkg-config\" \"--libs\" \"--cflags\" \"Qt5Core Qt5Gui Qt5Qml Qt5Quick\"` did not exit successfully: exit code: 1\n--- stderr\nPackage Qt5Core was not found in the pkg-config se
    arch path.\nPerhaps you should add the directory containing `Qt5Core.pc\'\nto the PKG_CONFIG_PATH environment variable\nNo package \'Qt5Core\' found\nPackage Qt5Gui was not found in the pkg-config search path.\nPerhaps you should add the directory cont
    aining `Qt5Gui.pc\'\nto the PKG_CONFIG_PATH environment variable\nNo package \'Qt5Gui\' found\nPackage Qt5Qml was not found in the pkg-config search path.\nPerhaps you should add the directory containing `Qt5Qml.pc\'\nto the PKG_CONFIG_PATH environment
     variable\nNo package \'Qt5Qml\' found\nPackage Qt5Quick was not found in the pkg-config search path.\nPerhaps you should add the directory containing `Qt5Quick.pc\'\nto the PKG_CONFIG_PATH environment variable\nNo package \'Qt5Quick\' found\n"', src\l
    ibcore\result.rs:860:4
    

    Doing a backtrace, the error occured on the last line of build.rc (92).

    I tried to set the PKG_CONFIG_PATH environmental variable to E:\Qt\5.9.1\mingw53_32\lib\pkgconfig, but that doesn't seem to do anything, any ideas?

    Thanks

    opened by 8176135 0
  • Passing non-primitive types to template

    Passing non-primitive types to template

    Disclaimer: completely new to Rust and QML.

    I want to be able to return a Vec<CustomType> and be able to iterate over the vector from within my QML template. For instance, I fetch a vector of User's from a DB. How can I pass this vector to my QML template?

    I've tried passing an array of primitives without luck. What's the idiomatic way to handle this?

    Thank you!

    opened by kieraneglin 4
  • Problems with static linking to Qt

    Problems with static linking to Qt

    Script causing the errors (win7 64bit):

    set CMAKE_PREFIX_PATH=C:\msys64\mingw64\qt5-static set PKG_CONFIG_PATH=C:\msys64\mingw64\qt5-static\lib\pkgconfig set LIBRARY_PATH=C:\msys64\mingw64\lib cargo.exe build cargo rustc --release --example factorial_string

    The error log:

    Compiling qmlrs v0.1.1 (file:///C:/Users/Vano/.cargo/registry/src/github.com-1ecc6299db9ec823/qmlrs-0.1.1) warning: unused import: QVariant, #[warn(unused_imports)] on by default --> src\lib.rs:5:11 | 5 | use ffi::{QVariant, QrsEngine, QObject}; | ^^^^^^^^

    Finished dev [unoptimized + debuginfo] target(s) in 1.93 secs
    

    Compiling qmlrs v0.1.1 (file:///C:/Users/Vano/.cargo/registry/src/github.com-1ecc6299db9ec823/qmlrs-0.1.1) warning: unused import: QVariant, #[warn(unused_imports)] on by default --> src\lib.rs:5:11 | 5 | use ffi::{QVariant, QrsEngine, QObject}; | ^^^^^^^^

    error: linking with gcc failed: exit code: 1 | = note: "gcc" "-Wl,--enable-long-section-names" "-fno-use-linker-plugin" "-Wl,--nxcompat" "-nostdlib" "-m64" "C:\Users\Vano\.rustup\toolchains\nightly-x86_64-pc-windows-gnu\lib\rustlib\x86_64-pc-windows-gnu\lib\crt2.o" "C:\Users\Vano\.rustup\toolchains\nightly-x86_64-pc-windows-gnu\lib\rustlib\x86_64-pc-windows-gnu\lib\rsbegin.o" "-L" "C:\Users\Vano\.rustup\toolchains\nightly-x86_64-pc-windows-gnu\lib\rustlib\x86_64-pc-windows-gnu\lib" "C:\Users\Vano\.cargo\registry\src\github.com-1ecc6299db9ec823\qmlrs-0.1.1\target\release\examples\factorial_string-2da5422af6f2b9b6.0.o" "-o" "C:\Users\Vano\.cargo\registry\src\github.com-1ecc6299db9ec823\qmlrs-0.1.1\target\release\examples\factorial_string-2da5422af6f2b9b6.exe" "-Wl,--gc-sections" "-nodefaultlibs" "-L" "C:\Users\Vano\.cargo\registry\src\github.com-1ecc6299db9ec823\qmlrs-0.1.1\target\release\deps" "-L" "C:\Windows\system32" "-L" "C:\Users\Vano\.cargo\registry\src\github.com-1ecc6299db9ec823\qmlrs-0.1.1\ext/libqmlrswrapper/build" "-L" "C:/msys64/mingw64/qt5-static/lib" "-L" "C:/repo/mingw-w64-qt5-static/src/x86_64/qtbase/lib" "-L" "C:/repo/mingw-w64-qt5-static/src/x86_64/qtdeclarative/lib" "-L" "C:/repo/mingw-w64-qt5-static/src/x86_64/qtbase/lib" "-L" "C:/msys64/mingw64/qt5-static/lib" "-L" "C:/repo/mingw-w64-qt5-static/src/x86_64/qtbase/lib" "-L" "C:/msys64/mingw64/qt5-static/lib" "-L" "C:/repo/mingw-w64-qt5-static/src/x86_64/qtbase/lib" "-L" "C:/msys64/mingw64/qt5-static/lib" "-L" "C:/repo/mingw-w64-qt5-static/src/x86_64/qtbase/lib" "-L" "C:/msys64/mingw64/qt5-static/lib" "-L" "C:/repo/mingw-w64-qt5-static/src/x86_64/qtbase/lib" "-L" "C:\Users\Vano\.rustup\toolchains\nightly-x86_64-pc-windows-gnu\lib\rustlib\x86_64-pc-windows-gnu\lib" "-Wl,-Bstatic" "-Wl,-Bdynamic" "C:\Users\Vano\.cargo\registry\src\github.com-1ecc6299db9ec823\qmlrs-0.1.1\target\release\deps\libqmlrs-d79f33cee0e046f9.rlib" "C:\Users\Vano\.cargo\registry\src\github.com-1ecc6299db9ec823\qmlrs-0.1.1\target\release\deps\liblibc-e8bd7a8d60e9ed01.rlib" "C:\Users\Vano\.rustup\toolchains\nightly-x86_64-pc-windows-gnu\lib\rustlib\x86_64-pc-windows-gnu\lib\libstd-f652078ccb4a05c6.rlib" "C:\Users\Vano\.rustup\toolchains\nightly-x86_64-pc-windows-gnu\lib\rustlib\x86_64-pc-windows-gnu\lib\librand-1b7958d453cbec37.rlib" "C:\Users\Vano\.rustup\toolchains\nightly-x86_64-pc-windows-gnu\lib\rustlib\x86_64-pc-windows-gnu\lib\libcollections-a314922a873913c3.rlib" "C:\Users\Vano\.rustup\toolchains\nightly-x86_64-pc-windows-gnu\lib\rustlib\x86_64-pc-windows-gnu\lib\libstd_unicode-fdbeec883a26ecfb.rlib" "C:\Users\Vano\.rustup\toolchains\nightly-x86_64-pc-windows-gnu\lib\rustlib\x86_64-pc-windows-gnu\lib\libpanic_unwind-1f7e6dd09e19d555.rlib" "C:\Users\Vano\.rustup\toolchains\nightly-x86_64-pc-windows-gnu\lib\rustlib\x86_64-pc-windows-gnu\lib\libunwind-0f98a378f2be1b7f.rlib" "C:\Users\Vano\.rustup\toolchains\nightly-x86_64-pc-windows-gnu\lib\rustlib\x86_64-pc-windows-gnu\lib\liblibc-fe9699f3e1ddd65d.rlib" "C:\Users\Vano\.rustup\toolchains\nightly-x86_64-pc-windows-gnu\lib\rustlib\x86_64-pc-windows-gnu\lib\liballoc-ea650dc98a507b3e.rlib" "C:\Users\Vano\.rustup\toolchains\nightly-x86_64-pc-windows-gnu\lib\rustlib\x86_64-pc-windows-gnu\lib\liballoc_system-d80227dea4fa1575.rlib" "C:\Users\Vano\.rustup\toolchains\nightly-x86_64-pc-windows-gnu\lib\rustlib\x86_64-pc-windows-gnu\lib\libcore-f76daf1e47d968ad.rlib" "C:\Users\Vano\.rustup\toolchains\nightly-x86_64-pc-windows-gnu\lib\rustlib\x86_64-pc-windows-gnu\lib\libcompiler_builtins-fd588520ea9f540f.rlib" "-l" "stdc++" "-l" "Qt5Quick" "-l" "comdlg32" "-l" "oleaut32" "-l" "imm32" "-l" "winmm" "-l" "glu32" "-l" "opengl32" "-l" "dnsapi" "-l" "iphlpapi" "-l" "ssl" "-l" "crypto" "-l" "gdi32" "-l" "crypt32" "-l" "ole32" "-l" "uuid" "-l" "ws2_32" "-l" "advapi32" "-l" "shell32" "-l" "user32" "-l" "kernel32" "-l" "mpr" "-l" "Qt5Gui" "-l" "Qt5Qml" "-l" "Qt5Network" "-l" "Qt5Core" "-l" "advapi32" "-l" "ws2_32" "-l" "userenv" "-l" "shell32" "-l" "gcc_eh" "-lmingwex" "-lmingw32" "-lgcc" "-lmsvcrt" "-luser32" "-lkernel32" "C:\Users\Vano\.rustup\toolchains\nightly-x86_64-pc-windows-gnu\lib\rustlib\x86_64-pc-windows-gnu\lib\rsend.o" = note: ld: C:/msys64/mingw64/qt5-static/lib/libQt5Quick.a(moc_qquickdesignerwindowmanager_p.o): Recognised but unhandled machine type (0x8664) in Import Library Format archive ld: C:/msys64/mingw64/qt5-static/lib/libQt5Gui.a(moc_qopengltimerquery.o): Recognised but unhandled machine type (0x8664) in Import Library Format archive ld: C:/msys64/mingw64/qt5-static/lib/libQt5Gui.a(qguiapplication.o): Recognised but unhandled machine type (0x8664) in Import Library Format archive ld: C:/msys64/mingw64/qt5-static/lib/libQt5Qml.a(moc_qquickworkerscript_p.o): Recognised but unhandled machine type (0x8664) in Import Library Format archive ld: C:/msys64/mingw64/qt5-static/lib/libQt5Qml.a(qqmlapplicationengine.o): Recognised but unhandled machine type (0x8664) in Import Library Format archive ld: C:/msys64/mingw64/qt5-static/lib/libQt5Qml.a(qqmlengine.o): Recognised but unhandled machine type (0x8664) in Import Library Format archive ld: C:/msys64/mingw64/qt5-static/lib/libQt5Qml.a(qqmlcontext.o): Recognised but unhandled machine type (0x8664) in Import Library Format archive ld: C:/msys64/mingw64/qt5-static/lib/libQt5Network.a(moc_qsslsocket_openssl_p.o): Recognised but unhandled machine type (0x8664) in Import Library Format archive ld: C:/msys64/mingw64/qt5-static/lib/libQt5Core.a(moc_qeventtransition.o): Recognised but unhandled machine type (0x8664) in Import Library Format archive ld: C:/msys64/mingw64/qt5-static/lib/libQt5Core.a(qarraydata.o): Recognised but unhandled machine type (0x8664) in Import Library Format archive ld: C:/msys64/mingw64/qt5-static/lib/libQt5Core.a(qlist.o): Recognised but unhandled machine type (0x8664) in Import Library Format archive ld: C:/msys64/mingw64/qt5-static/lib/libQt5Core.a(qstring.o): Recognised but unhandled machine type (0x8664) in Import Library Format archive ld: C:/msys64/mingw64/qt5-static/lib/libQt5Core.a(qlogging.o): Recognised but unhandled machine type (0x8664) in Import Library Format archive ld: C:/msys64/mingw64/qt5-static/lib/libQt5Core.a(qcoreapplication.o): Recognised but unhandled machine type (0x8664) in Import Library Format archive ld: C:/msys64/mingw64/qt5-static/lib/libQt5Core.a(qurl.o): Recognised but unhandled machine type (0x8664) in Import Library Format archive ld: C:/msys64/mingw64/qt5-static/lib/libQt5Core.a(qbytearray.o): Recognised but unhandled machine type (0x8664) in Import Library Format archive ld: C:/msys64/mingw64/qt5-static/lib/libQt5Core.a(qmetaobject.o): Recognised but unhandled machine type (0x8664) in Import Library Format archive ld: C:/msys64/mingw64/qt5-static/lib/libQt5Core.a(qvariant.o): Recognised but unhandled machine type (0x8664) in Import Library Format archive ld: C:/msys64/mingw64/qt5-static/lib/libQt5Core.a(qobject.o): Recognised but unhandled machine type (0x8664) in Import Library Format archive ld: C:/msys64/mingw64/qt5-static/lib/libQt5Core.a(qglobal.o): Recognised but unhandled machine type (0x8664) in Import Library Format archive C:\Users\Vano.cargo\registry\src\github.com-1ecc6299db9ec823\qmlrs-0.1.1\target\release\deps\libqmlrs-d79f33cee0e046f9.rlib(qrsdynamicobject_capi.cpp.obj):qrsdynamicobject_capi.cpp:(.text+0xd6): undefined reference to QString::fromUtf8_helper(char const*, int)' C:\Users\Vano\.cargo\registry\src\github.com-1ecc6299db9ec823\qmlrs-0.1.1\target\release\deps\libqmlrs-d79f33cee0e046f9.rlib(qrsdynamicobject_capi.cpp.obj):qrsdynamicobject_capi.cpp:(.text+0x168): undefined reference toQArrayData::deallocate(QArrayData*, unsigned long long, unsigned long long)' C:\Users\Vano.cargo\registry\src\github.com-1ecc6299db9ec823\qmlrs-0.1.1\target\release\deps\libqmlrs-d79f33cee0e046f9.rlib(qrsdynamicobject_capi.cpp.obj):qrsdynamicobject_capi.cpp:(.text+0x18c): undefined reference to QArrayData::deallocate(QArrayData*, unsigned long long, unsigned long long)' C:\Users\Vano\.cargo\registry\src\github.com-1ecc6299db9ec823\qmlrs-0.1.1\target\release\deps\libqmlrs-d79f33cee0e046f9.rlib(qrsdynamicobject_capi.cpp.obj):qrsdynamicobject_capi.cpp:(.text+0x1cd): undefined reference toQMessageLogger::fatal(char const*, ...) const' C:\Users\Vano.cargo\registry\src\github.com-1ecc6299db9ec823\qmlrs-0.1.1\target\release\deps\libqmlrs-d79f33cee0e046f9.rlib(qrsdynamicobject_capi.cpp.obj):qrsdynamicobject_capi.cpp:(.text+0x226): undefined reference to QString::fromUtf8_helper(char const*, int)' C:\Users\Vano\.cargo\registry\src\github.com-1ecc6299db9ec823\qmlrs-0.1.1\target\release\deps\libqmlrs-d79f33cee0e046f9.rlib(qrsdynamicobject_capi.cpp.obj):qrsdynamicobject_capi.cpp:(.text+0x2b8): undefined reference toQArrayData::deallocate(QArrayData*, unsigned long long, unsigned long long)' C:\Users\Vano.cargo\registry\src\github.com-1ecc6299db9ec823\qmlrs-0.1.1\target\release\deps\libqmlrs-d79f33cee0e046f9.rlib(qrsdynamicobject_capi.cpp.obj):qrsdynamicobject_capi.cpp:(.text+0x2dc): undefined reference to QArrayData::deallocate(QArrayData*, unsigned long long, unsigned long long)' C:\Users\Vano\.cargo\registry\src\github.com-1ecc6299db9ec823\qmlrs-0.1.1\target\release\deps\libqmlrs-d79f33cee0e046f9.rlib(qrsdynamicobject_capi.cpp.obj):qrsdynamicobject_capi.cpp:(.text+0x31d): undefined reference toQMessageLogger::fatal(char const*, ...) const' C:\Users\Vano.cargo\registry\src\github.com-1ecc6299db9ec823\qmlrs-0.1.1\target\release\deps\libqmlrs-d79f33cee0e046f9.rlib(qrsdynamicobject_capi.cpp.obj):qrsdynamicobject_capi.cpp:(.text$_ZN7QStringD1Ev[_ZN7QStringD1Ev]+0xfffffffffffffcef): undefined reference to QArrayData::deallocate(QArrayData*, unsigned long long, unsigned long long)' ld: C:\Users\Vano\.cargo\registry\src\github.com-1ecc6299db9ec823\qmlrs-0.1.1\target\release\deps\libqmlrs-d79f33cee0e046f9.rlib(qrsdynamicobject_capi.cpp.obj): bad reloc address 0x2f in section.text$_ZN7QStringD1Ev[_ZN7QStringD1Ev]' ld: final link failed: Invalid operation

    error: aborting due to previous error

    error: Could not compile qmlrs.

    To learn more, run the command again with --verbose.

    opened by IvankoB 0
  • Cross compile crash. RPi.

    Cross compile crash. RPi.

    I'm testing cross compile this lib for Raspberry Pi 2.

    1. Mount RPi rootfs to /mnt/rasp-pi-rootfs/. Create symlink in /usr/local to /mnt/rasp-pi-rootfs/usr/local/QtDIR.
    2. Create simple test bin with cargo new hello --bin and add qmlrs to dependencies.
    3. Add target to ~/.cargo/config
    [target.armv7-unknown-linux-gnueabihf]
    linker = "/mnt/rasp-pi-rootfs/usr/bin/arm-linux-gnueabihf-gcc"
    
    1. First run cargo build --target=armv7-unknown-linux-gnueabihf for fetch dependencies.
    2. Add
    set(CMAKE_SYSTEM_NAME Linux)
    set(CMAKE_SYSROOT /mnt/rasp-pi-rootfs)
    set(CMAKE_C_COMPILER /home/di-erz/projects/images/gcc-4.7-linaro-rpi-gnueabihf/bin/arm-linux-gnueabihf-gcc)
    set(CMAKE_CXX_COMPILER /home/di-erz/projects/images/gcc-4.7-linaro-rpi-gnueabihf/bin/arm-linux-gnueabihf-g++)
    set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
    set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
    set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
    set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
    

    to CMakeLists.txt to qmlrs-0.1.1/ext/libqmlrswrapper. Then build static libqmlrswrapper

    $ cd qmlrs-0.1.1/ext/libqmlrswrapper/build
    
    $ PATH=$PATH:/mnt/rasp-pi-rootfs/usr/local/Qt-rasp2-5.7.0 \
    LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/mnt/rasp-pi-rootfs/usr/local/Qt-rasp2-5.7.0/lib \
    PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/mnt/rasp-pi-rootfs/usr/local/Qt-rasp2-5.7.0/lib/pkgconfig/ \
    CMAKE_SYSROOT=/mnt/rasp-pi-rootfs/ \
    CMAKE_CXX_COMPILER=/mnt/rasp-pi-rootfs/usr/bin/arm-linux-gnueabihf-cpp \
    CMAKE_C_COMPILER=/mnt/rasp-pi-rootfs/usr/bin/arm-linux-gnueabihf-gcc \
    cmake ../
    
    $ make
    
    1. Return to test project dir, clean, and rebuild.
    $ cd projects/hello
    
    $ CMAKE_SYSROOT=/mnt/rasp-pi-rootfs \
    PATH=/mnt/rasp-pi-rootfs/usr/local/Qt-rasp2-5.7.0:$PATH \
    PKG_CONFIG_PATH=/mnt/rasp-pi-rootfs/usr/local/Qt-rasp2-5.7.0/lib/pkgconfig/ \
    PKG_CONFIG_ALLOW_CROSS=1 \
    cargo build --target=armv7-unknown-linux-gnueabihf --verbose
    

    Cargo exit with 101 error code.

       Compiling hello v0.1.0 (file:///home/di-erz/projects/rust_test_armf7/hello)
         Running `rustc src/main.rs --crate-name hello --crate-type bin -g -C metadata=633f842f00664fda --out-dir /home/di-erz/projects/rust_test_armf7/hello/target/armv7-unknown-linux-gnueabihf/debug --emit=dep-info,link --target armv7-unknown-linux-gnueabihf -C linker=/mnt/rasp-pi-rootfs/usr/bin/arm-linux-gnueabihf-gcc -L dependency=/home/di-erz/projects/rust_test_armf7/hello/target/armv7-unknown-linux-gnueabihf/debug/deps --extern qmlrs=/home/di-erz/projects/rust_test_armf7/hello/target/armv7-unknown-linux-gnueabihf/debug/deps/libqmlrs-4c95d386a3275de2.rlib -L native=/home/di-erz/.cargo/registry/src/github.com-1ecc6299db9ec823/qmlrs-0.1.1/ext/libqmlrswrapper/build -L native=/usr/local/Qt-rasp2-5.7.0/lib`
    error: linking with `/mnt/rasp-pi-rootfs/usr/bin/arm-linux-gnueabihf-gcc` failed: exit code: 2
      |
      = note: "/mnt/rasp-pi-rootfs/usr/bin/arm-linux-gnueabihf-gcc" "-Wl,--as-needed" "-Wl,-z,noexecstack" "-L" "/home/di-erz/.multirust/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/armv7-unknown-linux-gnueabihf/lib" "/home/di-erz/projects/rust_test_armf7/hello/target/armv7-unknown-linux-gnueabihf/debug/hello.0.o" "-o" "/home/di-erz/projects/rust_test_armf7/hello/target/armv7-unknown-linux-gnueabihf/debug/hello" "-Wl,--gc-sections" "-pie" "-nodefaultlibs" "-L" "/home/di-erz/projects/rust_test_armf7/hello/target/armv7-unknown-linux-gnueabihf/debug/deps" "-L" "/home/di-erz/.cargo/registry/src/github.com-1ecc6299db9ec823/qmlrs-0.1.1/ext/libqmlrswrapper/build" "-L" "/usr/local/Qt-rasp2-5.7.0/lib" "-L" "/home/di-erz/.multirust/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/armv7-unknown-linux-gnueabihf/lib" "-Wl,-Bstatic" "-Wl,-Bdynamic" "/home/di-erz/projects/rust_test_armf7/hello/target/armv7-unknown-linux-gnueabihf/debug/deps/libqmlrs-4c95d386a3275de2.rlib" "/home/di-erz/projects/rust_test_armf7/hello/target/armv7-unknown-linux-gnueabihf/debug/deps/liblibc-1bd8847afb79f283.rlib" "/home/di-erz/.multirust/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/armv7-unknown-linux-gnueabihf/lib/libstd-958ae23af751ccd2.rlib" "/home/di-erz/.multirust/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/armv7-unknown-linux-gnueabihf/lib/libpanic_unwind-a9a59c59600d7fc2.rlib" "/home/di-erz/.multirust/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/armv7-unknown-linux-gnueabihf/lib/libunwind-6c9d51e4a80592ac.rlib" "/home/di-erz/.multirust/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/armv7-unknown-linux-gnueabihf/lib/libcollections-d6fc9dbb93241229.rlib" "/home/di-erz/.multirust/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/armv7-unknown-linux-gnueabihf/lib/liballoc-d486feb737ebb44c.rlib" "/home/di-erz/.multirust/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/armv7-unknown-linux-gnueabihf/lib/liballoc_jemalloc-ffb42151b6c9616e.rlib" "/home/di-erz/.multirust/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/armv7-unknown-linux-gnueabihf/lib/liblibc-233ca0904a4b2a29.rlib" "/home/di-erz/.multirust/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/armv7-unknown-linux-gnueabihf/lib/librand-2bb4926cb0753fd8.rlib" "/home/di-erz/.multirust/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/armv7-unknown-linux-gnueabihf/lib/librustc_unicode-ccb09dfcfc8f1ea6.rlib" "/home/di-erz/.multirust/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/armv7-unknown-linux-gnueabihf/lib/libcore-aad7393ea968a91e.rlib" "-l" "stdc++" "-l" "Qt5Quick" "-l" "Qt5Gui" "-l" "Qt5Qml" "-l" "Qt5Network" "-l" "Qt5Core" "-l" "util" "-l" "dl" "-l" "rt" "-l" "pthread" "-l" "gcc_s" "-l" "pthread" "-l" "c" "-l" "m" "-l" "rt" "-l" "util" "-l" "compiler-rt"
      = note: /mnt/rasp-pi-rootfs/usr/bin/arm-linux-gnueabihf-gcc: 1: /mnt/rasp-pi-rootfs/usr/bin/arm-linux-gnueabihf-gcc: Syntax error: word unexpected (expecting ")")
    
    
    error: aborting due to previous error
    
    error: Could not compile `hello`.
    
    Caused by:
      Process didn't exit successfully: `rustc src/main.rs --crate-name hello --crate-type bin -g -C metadata=633f842f00664fda --out-dir /home/di-erz/projects/rust_test_armf7/hello/target/armv7-unknown-linux-gnueabihf/debug --emit=dep-info,link --target armv7-unknown-linux-gnueabihf -C linker=/mnt/rasp-pi-rootfs/usr/bin/arm-linux-gnueabihf-gcc -L dependency=/home/di-erz/projects/rust_test_armf7/hello/target/armv7-unknown-linux-gnueabihf/debug/deps --extern qmlrs=/home/di-erz/projects/rust_test_armf7/hello/target/armv7-unknown-linux-gnueabihf/debug/deps/libqmlrs-4c95d386a3275de2.rlib -L native=/home/di-erz/.cargo/registry/src/github.com-1ecc6299db9ec823/qmlrs-0.1.1/ext/libqmlrswrapper/build -L native=/usr/local/Qt-rasp2-5.7.0/lib` (exit code: 101)
    

    I would be glad of any idea!

    opened by ivlevdenis 0
Owner
Mikko Perttunen
Mikko Perttunen
Dear ImGui: Bloat-free Graphical User interface for C++ with minimal dependencies

Dear ImGui (This library is available under a free and permissive license, but needs financial support to sustain its continued improvements. In addit

omar 44.4k Jan 5, 2023
A graphical user interface toolkit for audio plugins.

HexoTK - A graphic user interface toolkit for audio plugins State of Development Super early! Building cargo run --example demo TODO / Features Every

Weird Constructor 14 Oct 20, 2022
Foreign Function Interface Plugin for Deno.

Deno FFI Plugin to call dynamic library functions in Deno. Usage import { Library } from "https://deno.land/x/[email protected]/mod.ts"; const lib = new

DjDeveloper 4 Aug 18, 2022
A simple, cross-platform GUI automation module for Rust.

AutoPilot AutoPilot is a Rust port of the Python C extension AutoPy, a simple, cross-platform GUI automation library for Python. For more information,

null 271 Dec 27, 2022
A data-first Rust-native UI design toolkit.

Druid A data-first Rust-native UI toolkit. Druid is an experimental Rust-native UI toolkit. Its main goal is to offer a polished user experience. Ther

null 8.2k Dec 31, 2022
The Rust UI-Toolkit.

The Orbital Widget Toolkit is a cross-platform (G)UI toolkit for building scalable user interfaces with the programming language Rust. It's based on t

Redox OS 3.7k Jan 1, 2023
An easy-to-use, 2D GUI library written entirely in Rust.

Conrod An easy-to-use, 2D GUI library written entirely in Rust. Guide What is Conrod? A Brief Summary Screenshots and Videos Feature Overview Availabl

PistonDevelopers 3.3k Jan 1, 2023
Rust bindings to Core Foundation and other low level libraries on Mac OS X and iOS

core-foundation-rs Compatibility Targets macOS 10.7 by default. To enable features added in macOS 10.8, set Cargo feature mac_os_10_8_features. To hav

Servo 685 Jan 2, 2023
Rust bindings for the FLTK GUI library.

fltk-rs Rust bindings for the FLTK Graphical User Interface library. The FLTK crate is a crossplatform lightweight gui library which can be statically

Mohammed Alyousef 1.1k Jan 9, 2023
Build beautiful desktop apps with flutter and rust. 🌠 (wip)

flutter-rs Build flutter desktop app in dart & rust. Get Started Install requirements Rust flutter sdk Develop install the cargo flutter command cargo

null 2k Dec 26, 2022
Idiomatic, GTK+-based, GUI library, inspired by Elm, written in Rust

Relm Asynchronous, GTK+-based, GUI library, inspired by Elm, written in Rust. This library is in beta stage: it has not been thoroughly tested and its

null 2.2k Dec 31, 2022
Rust bindings for Dear ImGui

imgui-rs: Rust bindings for Dear ImGui (Recently under new maintenance, things subject to change) Window::new(im_str!("Hello world")) .size([300.0

null 2k Jan 7, 2023
Clear Coat is a Rust wrapper for the IUP GUI library.

Clear Coat Clear Coat is a Rust wrapper for the IUP GUI library. IUP uses native controls and has Windows and GTK backends. A macOS backend has been o

Jordan Miner 18 Feb 13, 2021
Rust binding for IUP

IUP Rust This library provides a high level wrapper around IUP, a multi-platform toolkit for building graphical user interfaces. See rust-iup-sys for

David Campbell 41 May 28, 2022
A simple UI framework for Rust built on top of IUP (http://webserver2.tecgraf.puc-rio.br/iup/)

KISS-UI A UI framework for Rust based on the KISS (Keep It Simple, Stupid!) philosophy. Powered by the IUP GUI library for C by Tecgraf, via the bindi

null 342 Jul 11, 2022
Rust bindings to the minimalist, native, cross-platform UI toolkit `libui`

Improved User Interface A cross-platform UI toolkit for Rust based on libui iui: ui-sys: iui is a simple (about 4 kLOC of Rust), small (about 800kb, i

Rust Native UI Group 865 Dec 27, 2022
Integrate Qml and Rust by building the QMetaObject at compile time.

QMetaObject crate for Rust The qmetaobject crate is a crate which is used to expose rust object to Qt and QML. Objectives Rust procedural macro (custo

Woboq GmbH 495 Jan 3, 2023
Qt5 binding for rust language. (stalled)

Qt5 binding for Rust language. qt.rs This project provides bindings that allow the QT Gui toolkit to be used from the Rust Programming language. Compi

yatsen1 37 Oct 12, 2021
QML (Qt Quick) bindings for Rust language

QML-rust - bindings for Qt Quick Bindings are based on DOtherSide C bindings for QML Library is mostly feature-compliant with other bindings based on

Oak 204 Dec 8, 2022