Skip to content
  • Configure QtCreator in RPi3

    Unsolved QtonPi
    20
    0 Votes
    20 Posts
    2k Views
    SGaistS

    Did you check what your Kits are using as mkspecs ?

  • 0 Votes
    3 Posts
    1k Views
    D

    Thanks VRonin,

    Your solution resolved the issue. Kind of kicking myself for not thinking about that.

  • 0 Votes
    2 Posts
    885 Views
    Cleiton BuenoC

    Are you using which Yocto branch?
    Could you tell the MACHINE and the bblayers you're using?

  • 0 Votes
    12 Posts
    26k Views
    DongD

    Dear All: here is my situation

    The class which cause compile Error is PropertyColumnMapping in DynamicObjectCore.pro Then CommonBusiness.pro using this class And Presentation linked to both CommonBusiness.pro & DynamicObjectCore.pro

    Clean + QMake + Rebuild doesn't work.

    Here is my Project Structure.

    Application.pro
    TEMPLATE = subdirs
    CONFIG += ordered

    SUBDIRS +=
    Framework
    Services
    Business
    Presentation
    Updater

    QT += qml quick widgets network sql xml

    Business.pro
    TEMPLATE = subdirs

    SUBDIRS +=
    CommonBusiness
    ServiceBusiness

    //Link to Framework.System

    CommonBusiness.pro
    QT -= gui
    QT += qml quick sql xml xmlpatterns network

    TARGET = CommonBusiness
    TEMPLATE = lib
    CONFIG += staticlib c++11

    SOURCES += commonbusiness.cpp
    ...

    HEADERS += commonbusiness.h
    ...

    //# Link to FrameWork.DynamicObjectCore

    DynamicObjectCore.pro
    QT -= gui
    QT += qml

    TARGET = DynamicObjectCore
    TEMPLATE = lib
    CONFIG += staticlib c++11
    #DEFINES += DYNAMICOBJECTCORE_LIBRARY

    SOURCES +=
    MetadataModel/propertycolumnmapping.cpp
    ...

    HEADERS +=
    MetadataModel/propertycolumnmapping.h
    ...
    unix {
    target.path = /usr/lib
    INSTALLS += target
    }

    Presentation.pro
    TEMPLATE = app

    TARGET = [ApplicationName]

    QT += qml quick widgets network sql xml xmlpatterns

    //# for QT 5.4
    qtHaveModule(webengine) {
    QT += webengine
    DEFINES += QT_WEBVIEW_WEBENGINE_BACKEND
    }

    qtHaveModule(webkitwidgets) {
    QT += webkitwidgets
    }

    //# for QT 5.7
    equals(QT_VERSION, QT_VERSION_CHECK(5, 7, 0)) {
    QT += webview
    DEFINES += QT_WEBVIEW_CONTROL_BACKEND
    }

    CONFIG += c++11

    CONFIG(release, debug|release) {
    CONFIG += release force_debug_info
    }
    RESOURCES += qml.qrc
    shared.qrc

    //# Link to DynamicObjectCore
    //# Link to CommonBusiness

  • 0 Votes
    3 Posts
    1k Views
    theqtsupporterT

    Yup, I am fully aware of that, and I have the Qt 5.5.1 version of msvc2012 in my machine. Downgrading the VS version together with downgrading the Qt version as well.

    The reason I am trying to use an older version of VS to compile is to allow my client to easily activate and install my application instead of going through the hassles installing the VS 2015 redistributable packages (which requires windows update on Win7 machine, else it will stuck on the Windows7_MSU_x64 installation part), and with VS2012 redistributable packages, installation will not be a problem (recent installed win 7 machine should 100% compatible with the package).

    But it works now for me, there are just some problems with the redistributable packages installed in my pc (2012 version) and uninstalling and reinstalled works just perfect now.

    Thanks!

  • 0 Votes
    2 Posts
    798 Views
    SGaistS

    Hi and welcome to devnet,

    Qt 4.6.7 ? Looks pretty outdated, IIRC you should have at least a Qt 4.8 version available.

    Are you compiling directly on the Pi ?

  • 0 Votes
    4 Posts
    2k Views
    SGaistS

    Glad you found out and thanks for sharing !

    Since you have it working now please mark the thread as solved using the"Topic Tool" button so that other forum users may know a solution has been found :)

  • 0 Votes
    7 Posts
    4k Views
    SGaistS

    Hi,

    You were hit by the good old "whitespace in path" problem. On Windows you should either use paths without spaces or use the old 8.3 path notation.

  • 0 Votes
    5 Posts
    6k Views
    V

    Fine, Thanks.

  • 0 Votes
    2 Posts
    964 Views
    SGaistS

    Hi and welcome to devnet,

    Please take the time to search the forum a bit. This question has been asked and answered many times already (even again in the last 7 days).

    You are missing the OpenGL dev libraries.

    apt-get install libgl1-mesa-dev

  • 0 Votes
    2 Posts
    1k Views
    J

    Newest progress:
    Today after many times of compiling and testing, I found this error was caused by the definition of macro QT_NO_SHAREDMEMORY, it made the definition of class QSharedMemory unavailable in header file <QT_INSTALL_DIR>/include/QtCore/qsharedmemory.h.
    The macro QT_NO_SHAREDMEMORY is defined in qconfig.h, which is generated in my custom-building progress of Qt5.5.0. But the qconfig.h in official version of Qt5.5.0 does not contains the definition of that macro. So I guess whether the configure scripts generated this macro, because qconfig.h is generated by the scripts in file <QT_SRC_DIR>/qtbase/configure.
    After many times of testing, I found there is a part of script code which is very strange and make me confused. this part of script lies in line 4453 - 4463:

    # check IPC support if ! compileTest unix/ipc_sysv "ipc_sysv" ; then # SYSV IPC is not supported - check POSIX IPC if compileTest unix/ipc_posix "ipc_posix" ; then QCONFIG_FLAGS="$QCONFIG_FLAGS QT_POSIX_IPC" else if [ "$XPLATFORM_ANDROID" = "no" ] ; then QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SYSTEMSEMAPHORE QT_NO_SHAREDMEMORY" fi fi fi

    As mentioned above, if the script found the compileTest of ipc_posix failed, and if the target platform is not android, then variable QCONFIG_FLAGS will be appended with QT_NO_SYSTEMSEMAPHORE and QT_NO_SHAREDMEMORY. Therefore the scripts between line 6662 and 6693 will generate the definition of macro QT_NO_SHAREDMEMORY in file qconfig.h.

    I'm doubted that why the SYSTEMSEMAPHORE and SHAREDMEMORY should be disabled while the target platform is not android. I guess maybe it is a clerical error and the code if [ "$XPLATFORM_ANDROID" = "no" ] ; should be if [ "$XPLATFORM_ANDROID" != "no" ] ;. But I'm not sure, could any one tell me?