live-keys / livekeys

Livekeys - Automation Platform with support for live scripting.
https://livekeys.io
562 stars 86 forks source link

Cannot get running on Ubuntu 20.04 #172

Open bj0 opened 4 years ago

bj0 commented 4 years ago

I just discovered this project and it sounds very cool, so I tried getting it to run but I am running into the following problems:

I tried the minimal download from the website, but it gives me the errors:

>$ ./livekeys 
./livekeys: /lib/x86_64-linux-gnu/libQt5Core.so.5: version `Qt_5.14' not found (required by ./livekeys)
./livekeys: /lib/x86_64-linux-gnu/libQt5Core.so.5: version `Qt_5.14' not found (required by /home/user/Downloads/livekeys2/livekeys/liblvbase.so.1)
./livekeys: /lib/x86_64-linux-gnu/libQt5Core.so.5: version `Qt_5.14' not found (required by /home/user/Downloads/livekeys2/livekeys/liblvview.so.1)
./livekeys: /lib/x86_64-linux-gnu/libQt5Core.so.5: version `Qt_5.14' not found (required by /home/user/Downloads/livekeys2/livekeys/liblveditor.so.1)

I then tried the stand-alone package, and it runs, but if I click on 'take the tour', it core dumps. If I try to open one of the examples there's always an error like:

Error: file:///home/user/Downloads/livekeys/plugins/lcvimgproc/samples/blur.qml:2 plugin cannot be loaded for module "lcvcore": Cannot load library /home/user/Downloads/livekeys/plugins/lcvcore/liblcvcore.so: (libopencv_imgproc.so.4.1: cannot open shared object file: No such file or directory)

I then tried cloning the repo and was able to get it to build without error, but when I run it, I get the following error:

QtWebEngine::initialize() must be called after the construction of the application object.
Aborted (core dumped)

I'm not sure what else I can try.

I am attempting to run version 1.7. uname -a: Linux box 5.4.0-28-generic #32-Ubuntu SMP Wed Apr 22 17:40:10 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux lsb_release: 20.04

opencv and qt5 development packages installed from apt

dinusv commented 4 years ago

The minimal release requires Qt 5.14 to run, probably from apt you have a lower one.

The standalone release has the Qt version shipped with the application, but for some reason it's not finding the Opencv packages, I will need to look into that.

Till then building the source would be the best option. That webengine error is a feature Qt have changed depending on the version. In some you need to initialise the webengine before declaring the application, and in others you need to initialise it after.

Here's the section in https://github.com/live-keys/livekeys/blob/master/application/src/main.cpp:

...

#if (QT_VERSION >= QT_VERSION_CHECK(5,12,0))
    QtWebEngine::initialize();
#endif

    QGuiApplication app(argc, argv);
    QGuiApplication::setApplicationName("Livekeys");
    QGuiApplication::setApplicationVersion(Livekeys::versionString());

#if (QT_VERSION < QT_VERSION_CHECK(5,12,0))
    QtWebEngine::initialize();
#endif

In your case, you will need it after the construction of the application object. Just remove the two macros, and declare it after, it should build fine:


// #if (QT_VERSION >= QT_VERSION_CHECK(5,12,0))
//    QtWebEngine::initialize();   
//#endif. 

    QGuiApplication app(argc, argv);
    QGuiApplication::setApplicationName("Livekeys");
    QGuiApplication::setApplicationVersion(Livekeys::versionString());

// #if (QT_VERSION < QT_VERSION_CHECK(5,12,0))
    QtWebEngine::initialize();
// #endif

Let me know how the build works, and let me know what version you have so I can update the macros.

Also, note that building from source will not build the documentation (including the startup tutorial), you will need live-doc for that:

apt install doxygen node
git clone https://github.com/live-keys/live-doc.git
cd live-doc
npm install
node live-doc.js <path_to_livekeys_source> --deploy <path_to_livekeys_bin>