Build http://code.qt.io/cgit/qt/qtopcua.git/tree/ standalone with Qt 5.9.1



  • Re: OPC UA protocol

    It seems to me that http://code.qt.io/cgit/qt/qtopcua.git/tree/ is built as a part of a complete Qt build.

    Is there a quick way to build http://code.qt.io/cgit/qt/qtopcua.git/tree/ as a standalone plugin or library ?


  • Qt Champions 2017

    @sirop said in Build http://code.qt.io/cgit/qt/qtopcua.git/tree/ standalone with Qt 5.9.1:

    Is there a quick way to build http://code.qt.io/cgit/qt/qtopcua.git/tree/ as a standalone plugin or library ?

    If everything goes well, just open qtopcua.pro in QtCreator, select the correct Qt version and press build :)

    Note 1: there are (at least) two prerequisities: freeopcua and open62541 needed to build qtopcua.

    Note 2: the module is still under heavy development, so expected to invest some time to get something running

    Note 3: if you build the module standalone, you get the binaries in your build folder. If the module is build as part of Qt, the binaries are already at the correct "end position". In your case, you may need some "make install" step (copy the resulting libraries to your Qt/lib directory)

    Disclaimer: I don't know if Qt 5.9.x is enough or if you already need Qt 5.10.



  • @aha_1980 said in Build http://code.qt.io/cgit/qt/qtopcua.git/tree/ standalone with Qt 5.9.1:

    Note 1: there are (at least) two prerequisities: freeopcua and open62541 needed to build qtopcua.

    Note 2: the module is still under heavy development, so expected to invest some time to get something running

    I could exclude freeopcua from this buidl, that was not a problem.

    I get this output from qmake :

    Running configuration tests...
    Done running configuration tests.
    
    Configure summary:
    
    Qt Opcua:
      Open62541 .............................. no
    
    Qt is now configured for building. Just run 'nmake'.
    Once everything is built, Qt is installed.
    

    This tells me that qtopcua.git is supposed to be build as a part of a complete Qt build.


  • Qt Champions 2017

    @sirop said in Build http://code.qt.io/cgit/qt/qtopcua.git/tree/ standalone with Qt 5.9.1:

    This tells me that qtopcua.git is supposed to be build as a part of a complete Qt build.

    And did you run 'nmake'?

    I must agree that I didn't use QtOpcUa so far, but I have don the same with e.g. QtSerialBus. The message is from Qt's configuration system, right. That does not necessarily mean building outside Qt's source tree is impossible.



  • @aha_1980 said in Build http://code.qt.io/cgit/qt/qtopcua.git/tree/ standalone with Qt 5.9.1:

    @sirop said in Build http://code.qt.io/cgit/qt/qtopcua.git/tree/ standalone with Qt 5.9.1:

    This tells me that qtopcua.git is supposed to be build as a part of a complete Qt build.

    And did you run 'nmake'?

    No, I did not because the rest of qmake output yields:

    16:27:37: Der Prozess "D:\Qt\Qt5.9.1\5.9.1\msvc2015_64\bin\qmake.exe" wurde normal beendet.
    16:27:37: Starte "D:\Microsoft Visual Studio 14.0\VC\BIN\amd64\nmake.exe" qmake_all
    
    Microsoft (R) Program Maintenance Utility, Version 14.00.23506.0
    Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.
    
    	cd src\ && D:\Qt\Qt5.9.1\5.9.1\msvc2015_64\bin\qmake.exe -o Makefile D:\QtProjects\qtopcua\src\src.pro -spec win32-msvc
    	cd src\ && "D:\Microsoft Visual Studio 14.0\VC\BIN\amd64\nmake.exe" -f Makefile qmake_all
    
    Microsoft (R) Program Maintenance Utility, Version 14.00.23506.0
    Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.
    
    	cd opcua\ && D:\Qt\Qt5.9.1\5.9.1\msvc2015_64\bin\qmake.exe -o Makefile D:\QtProjects\qtopcua\src\opcua\opcua.pro -spec win32-msvc
    Der Befehl "perl" ist entweder falsch geschrieben oder
    konnte nicht gefunden werden.
    Project MESSAGE: perl -w D:\Qt\Qt5.9.1\5.9.1\msvc2015_64\bin\syncqt.pl -module QtOpcUa -version 5.9.0 -outdir D:/QtProjects/build-qtopcua-Desktop_Qt_5_9_1_MSVC2015_64bit-Release D:/QtProjects/qtopcua
    Project ERROR: Failed to run: perl -w D:\Qt\Qt5.9.1\5.9.1\msvc2015_64\bin\syncqt.pl -module QtOpcUa -version 5.9.0 -outdir D:/QtProjects/build-qtopcua-Desktop_Qt_5_9_1_MSVC2015_64bit-Release D:/QtProjects/qtopcua
    NMAKE : fatal error U1077: "cd": Rückgabe-Code "0x3"
    Stop.
    NMAKE : fatal error U1077: "cd": Rückgabe-Code "0x2"
    Stop.
    

    This means I need perl on my PATH in order to "Synchronizes Qt header files" ( see syncqt.pl contents). Never needed perl before when building a standalone lib or plugin.


  • Qt Champions 2017

    @sirop: well the correct way is to follow https://wiki.qt.io/Building_Qt_5_from_Git and to build at least qtbase first. Other needed modules (within the Qt source tree can be build on demand).

    Of course you need Perl and Python to build Qt following these instructions, so you will have to install them first.



  • @sirop said in Build http://code.qt.io/cgit/qt/qtopcua.git/tree/ standalone with Qt 5.9.1:

    Der Befehl "perl" ist entweder falsch geschrieben oder
    konnte nicht gefunden werden.

    Hi guys,

    today I have starting to run the Qtopcua.
    I have found the solution for the error on the top of the post. Since Qt 5.8 the installer of Qt can't install Strawberry
    (Perl). So Qt don't know the command "perl". So tolve this problem, you have to got to the following path :
    "C:\Qt\Qt5.10.0\Tools\Perl52213_32". There is the file "strawberry-perl-5.22.1.3-32bit". You have to start this installer. After that, the error on the top of the post will disapear.

    After the that I have a question. How can I exclude the freeopcua and open62541? What have I to do, that Qt will know those two thinks.

    Thanks in Advance

    Greetings,

    Ben



  • @N3ff3
    Thanks for the hint.
    I can not find the corresponding Perl path under Qt5.9.1, but maybe, this is only due to my ommitting this Perl module during installation.

    How can I exclude the freeopcua and open62541? What have I to do, that Qt will know those two thinks.

    Could you please explain your intention in more understandable words?



  • @sirop said in Build http://code.qt.io/cgit/qt/qtopcua.git/tree/ standalone with Qt 5.9.1:

    I can not find the corresponding Perl path under Qt5.9.1, but maybe, this is only due to my ommitting this Perl module during installation.

    Hmm, that is really interessting. I have checked it at my Computer and I can't find it for Qt 5.9.1. I find it only for Qt 5.10.0.

    @sirop said in Build http://code.qt.io/cgit/qt/qtopcua.git/tree/ standalone with Qt 5.9.1:

    Could you please explain your intention in more understandable words?

    Yes, sorry for the less information.

    My goal is to use the QtOpcUa. When I run the qmake in the Qt Creator, then I will get the following text:

    "
    12:49:38: Führe Schritte für Projekt qtopcua aus...
    12:49:39: Starte "C:\Qt\Qt5.10.0\5.10.0\mingw53_32\bin\qmake.exe" D:\0020____Spielwiesle\QT\lib\opcua\qtopcua\qtopcua.pro -spec win32-g++ "CONFIG+=debug" "CONFIG+=qml_debug"

    Running configuration tests...
    Done running configuration tests.

    Configure summary:

    Qt Opcua:
    FreeOpcua .............................. no
    Open62541 .............................. no

    Qt is now configured for building. Just run 'mingw32-make'.
    Once everything is built, Qt is installed.
    You should NOT run 'mingw32-make install'.
    Note that this build cannot be deployed to other machines or devices.

    Prior to reconfiguration, make sure you remove any leftovers from
    the previous build.

    12:49:39: Der Prozess "C:\Qt\Qt5.10.0\5.10.0\mingw53_32\bin\qmake.exe" wurde normal beendet.
    12:49:39: Starte "C:\Qt\Qt5.10.0\Tools\mingw530_32\bin\mingw32-make.exe" qmake_all
    cd src\ && C:\Qt\Qt5.10.0\5.10.0\mingw53_32\bin\qmake.exe -o Makefile D:\0020____Spielwiesle\QT\lib\opcua\qtopcua\src\src.pro -spec win32-g++ "CONFIG+=debug" "CONFIG+=qml_debug"
    cd src\ && C:/Qt/Qt5.10.0/Tools/mingw530_32/bin/mingw32-make -f Makefile qmake_all
    mingw32-make[1]: Entering directory 'D:/0020____Spielwiesle/QT/lib/opcua/build-qtopcua-Desktop_Qt_5_10_0_MinGW_32bit-Debug/src'
    cd opcua\ && C:\Qt\Qt5.10.0\5.10.0\mingw53_32\bin\qmake.exe -o Makefile D:\0020____Spielwiesle\QT\lib\opcua\qtopcua\src\opcua\opcua.pro -spec win32-g++ "CONFIG+=debug" "CONFIG+=qml_debug"
    <srcbase> = D:/0020____Spielwiesle/QT/lib/opcua/qtopcua
    <outbase> = D:/0020____Spielwiesle/QT/lib/opcua/build-qtopcua-Desktop_Qt_5_10_0_MinGW_32bit-Debug
    Project MESSAGE: perl -w C:\Qt\Qt5.10.0\5.10.0\mingw53_32\bin\syncqt.pl -module QtOpcUa -version 5.10.0 -outdir D:/0020____Spielwiesle/QT/lib/opcua/build-qtopcua-Desktop_Qt_5_10_0_MinGW_32bit-Debug D:/0020____Spielwiesle/QT/lib/opcua/qtopcua
    cd opcua\ && C:/Qt/Qt5.10.0/Tools/mingw530_32/bin/mingw32-make -f Makefile qmake_all
    mingw32-make[2]: Entering directory 'D:/0020____Spielwiesle/QT/lib/opcua/build-qtopcua-Desktop_Qt_5_10_0_MinGW_32bit-Debug/src/opcua'
    mingw32-make[2]: Nothing to be done for 'qmake_all'.
    mingw32-make[2]: Leaving directory 'D:/0020____Spielwiesle/QT/lib/opcua/build-qtopcua-Desktop_Qt_5_10_0_MinGW_32bit-Debug/src/opcua'
    cd plugins\ && C:\Qt\Qt5.10.0\5.10.0\mingw53_32\bin\qmake.exe -o Makefile D:\0020____Spielwiesle\QT\lib\opcua\qtopcua\src\plugins\plugins.pro -spec win32-g++ "CONFIG+=debug" "CONFIG+=qml_debug"
    cd plugins\ && C:/Qt/Qt5.10.0/Tools/mingw530_32/bin/mingw32-make -f Makefile qmake_all
    mingw32-make[2]: Entering directory 'D:/0020____Spielwiesle/QT/lib/opcua/build-qtopcua-Desktop_Qt_5_10_0_MinGW_32bit-Debug/src/plugins'
    cd opcua\ && C:\Qt\Qt5.10.0\5.10.0\mingw53_32\bin\qmake.exe -o Makefile D:\0020____Spielwiesle\QT\lib\opcua\qtopcua\src\plugins\opcua\opcua.pro -spec win32-g++ "CONFIG+=debug" "CONFIG+=qml_debug"
    cd opcua\ && C:/Qt/Qt5.10.0/Tools/mingw530_32/bin/mingw32-make -f Makefile qmake_all
    mingw32-make[3]: Entering directory 'D:/0020____Spielwiesle/QT/lib/opcua/build-qtopcua-Desktop_Qt_5_10_0_MinGW_32bit-Debug/src/plugins/opcua'
    mingw32-make[3]: Nothing to be done for 'qmake_all'.
    mingw32-make[3]: Leaving directory 'D:/0020____Spielwiesle/QT/lib/opcua/build-qtopcua-Desktop_Qt_5_10_0_MinGW_32bit-Debug/src/plugins/opcua'
    mingw32-make[2]: Leaving directory 'D:/0020____Spielwiesle/QT/lib/opcua/build-qtopcua-Desktop_Qt_5_10_0_MinGW_32bit-Debug/src/plugins'
    mingw32-make[1]: Leaving directory 'D:/0020____Spielwiesle/QT/lib/opcua/build-qtopcua-Desktop_Qt_5_10_0_MinGW_32bit-Debug/src'
    cd examples\ && C:\Qt\Qt5.10.0\5.10.0\mingw53_32\bin\qmake.exe -o Makefile D:\0020____Spielwiesle\QT\lib\opcua\qtopcua\examples\examples.pro -spec win32-g++ "CONFIG+=debug" "CONFIG+=qml_debug"
    cd examples\ && C:/Qt/Qt5.10.0/Tools/mingw530_32/bin/mingw32-make -f Makefile qmake_all
    mingw32-make[1]: Entering directory 'D:/0020____Spielwiesle/QT/lib/opcua/build-qtopcua-Desktop_Qt_5_10_0_MinGW_32bit-Debug/examples'
    cd opcua\ && C:\Qt\Qt5.10.0\5.10.0\mingw53_32\bin\qmake.exe -o Makefile D:\0020____Spielwiesle\QT\lib\opcua\qtopcua\examples\opcua\opcua.pro -spec win32-g++ "CONFIG+=debug" "CONFIG+=qml_debug"
    cd opcua\ && C:/Qt/Qt5.10.0/Tools/mingw530_32/bin/mingw32-make -f Makefile qmake_all
    mingw32-make[2]: Entering directory 'D:/0020____Spielwiesle/QT/lib/opcua/build-qtopcua-Desktop_Qt_5_10_0_MinGW_32bit-Debug/examples/opcua'
    mingw32-make[2]: Nothing to be done for 'qmake_all'.
    mingw32-make[2]: Leaving directory 'D:/0020____Spielwiesle/QT/lib/opcua/build-qtopcua-Desktop_Qt_5_10_0_MinGW_32bit-Debug/examples/opcua'
    mingw32-make[1]: Leaving directory 'D:/0020____Spielwiesle/QT/lib/opcua/build-qtopcua-Desktop_Qt_5_10_0_MinGW_32bit-Debug/examples'
    cd tests\ && C:\Qt\Qt5.10.0\5.10.0\mingw53_32\bin\qmake.exe -o Makefile D:\0020____Spielwiesle\QT\lib\opcua\qtopcua\tests\tests.pro -spec win32-g++ "CONFIG+=debug" "CONFIG+=qml_debug"
    cd tests\ && C:/Qt/Qt5.10.0/Tools/mingw530_32/bin/mingw32-make -f Makefile qmake_all
    mingw32-make[1]: Entering directory 'D:/0020____Spielwiesle/QT/lib/opcua/build-qtopcua-Desktop_Qt_5_10_0_MinGW_32bit-Debug/tests'
    cd auto\ && C:\Qt\Qt5.10.0\5.10.0\mingw53_32\bin\qmake.exe -o Makefile D:\0020____Spielwiesle\QT\lib\opcua\qtopcua\tests\auto\auto.pro -spec win32-g++ "CONFIG+=debug" "CONFIG+=qml_debug"
    cd auto\ && C:/Qt/Qt5.10.0/Tools/mingw530_32/bin/mingw32-make -f Makefile qmake_all
    mingw32-make[2]: Entering directory 'D:/0020____Spielwiesle/QT/lib/opcua/build-qtopcua-Desktop_Qt_5_10_0_MinGW_32bit-Debug/tests/auto'
    cd qopcuaclient\ && C:\Qt\Qt5.10.0\5.10.0\mingw53_32\bin\qmake.exe -o Makefile D:\0020____Spielwiesle\QT\lib\opcua\qtopcua\tests\auto\qopcuaclient\qopcuaclient.pro -spec win32-g++ "CONFIG+=debug" "CONFIG+=qml_debug"
    cd qopcuaclient\ && C:/Qt/Qt5.10.0/Tools/mingw530_32/bin/mingw32-make -f Makefile qmake_all
    mingw32-make[3]: Entering directory 'D:/0020____Spielwiesle/QT/lib/opcua/build-qtopcua-Desktop_Qt_5_10_0_MinGW_32bit-Debug/tests/auto/qopcuaclient'
    mingw32-make[3]: Nothing to be done for 'qmake_all'.
    mingw32-make[3]: Leaving directory 'D:/0020____Spielwiesle/QT/lib/opcua/build-qtopcua-Desktop_Qt_5_10_0_MinGW_32bit-Debug/tests/auto/qopcuaclient'
    mingw32-make[2]: Leaving directory 'D:/0020____Spielwiesle/QT/lib/opcua/build-qtopcua-Desktop_Qt_5_10_0_MinGW_32bit-Debug/tests/auto'
    mingw32-make[1]: Leaving directory 'D:/0020____Spielwiesle/QT/lib/opcua/build-qtopcua-Desktop_Qt_5_10_0_MinGW_32bit-Debug/tests'
    12:49:46: Der Prozess "C:\Qt\Qt5.10.0\Tools\mingw530_32\bin\mingw32-make.exe" wurde normal beendet.
    12:49:46: Verstrichene Zeit: 00:07.

    "

    In my opinion, the important lines are these: "
    Qt Opcua:
    FreeOpcua .............................. no
    Open62541 .............................. no
    "

    My question is how can I register/load or do something else, that FreeOpcua and Open 62541 are not missing even more.

    Or do I something wrong?

    Greetings

    Ben



  • Should one you prebuild and adjust the path for Open62541 as in
    http://code.qt.io/cgit/qt/qtopcua.git/tree/src/plugins/opcua/open62541/open62541.pro#n9 ?



  • @sirop said in Build http://code.qt.io/cgit/qt/qtopcua.git/tree/ standalone with Qt 5.9.1:

    Should one you prebuild and adjust the path for Open62541 as in
    http://code.qt.io/cgit/qt/qtopcua.git/tree/src/plugins/opcua/open62541/open62541.pro#n9 ?

    Have I to download this libaries?

    win32: LIBS += open62541.lib ws2_32.lib
    


  • @N3ff3
    ws2_32.lib is Windows own winsock lib.

    open62541.lib has to be built from source https://github.com/open62541/open62541 .



  • @sirop

    I have started the building from source with this instruction.

    I have the problem, that I have no buildopen62541.sln . I have only an open62541.sln. So I have tested it with this solution, but then I will get the following error:

    Unable to start programm
    D:\0020____Spielwiesle\QT\lib\open62541\open62541\build\Debug\ALL_BUILD.

    The system cannot find the file specified

    The ALL_BUILD file is in this folder:
    D:\0020____Spielwiesle\QT\lib\open62541\open62541\build\ALL_BUILD.

    So I have changed the Output file to the path where the ALL_BUILD file is.

    While the Build process no error occured.



  • @N3ff3
    Is this kind of a question?



  • @sirop

    Yeah, I want to know how can I solve this problem?

    Has anyone an idea?

    @N3ff3 said in Build http://code.qt.io/cgit/qt/qtopcua.git/tree/ standalone with Qt 5.9.1:

    @sirop
    I have started the building from source with this instruction.
    I have the problem, that I have no buildopen62541.sln . I have only an open62541.sln. So I have tested it with this solution, but then I will get the following error:
    Unable to start programm
    D:\0020____Spielwiesle\QT\lib\open62541\open62541\build\Debug\ALL_BUILD.
    The system cannot find the file specified
    The ALL_BUILD file is in this folder:
    D:\0020____Spielwiesle\QT\lib\open62541\open62541\build\ALL_BUILD.
    So I have changed the Output file to the path where the ALL_BUILD file is.
    While the Build process no error occured.



  • @N3ff3

    I used the cmake GUI with MSVC 2015 for a Release version.
    Do not know if the Debug version as you tried to build needs any tweaks.

    See may CMakeCache.txt if interested: https://gist.github.com/sirop/d3cfd94d93dbf3c22e1195c7e326022a .

    Please do choose: CMAKE_VERBOSE_MAKEFILE:BOOL=ON in order to have a more detailed make log.



  • Now I have used the cmake gui. The process finished without and errors. So far so good. I found under the path "C:\Program Files (x86)\open62541" the folders include, lib and share.

    Have I finished this step correct?

    If yes, what have I to do with this files?

    Many thanks in advanced and sorry about my stupid questions.



  • @N3ff3
    Now you have a choice:

    • return to https://forum.qt.io/post/434351
    • or make your own Qt C++ wrapper for open62541 . The wrapper should not be the most elegant one, not should it wrap all the C functions of open62541. A subset of those that you need is enough.

    Please report about you progress here.

    BTW, guess you are trying to implement an OPC client. If so, what is the OPC server you deal with?



  • @sirop

    I have changed the line

    win32: LIBS += open62541.lib ws2_32.lib
    

    with

    win32: LIBS += 'C:/Program Files (x86)/open62541/lib/open62541.lib' ws2_32.lib
    

    Now I have this error:

    [Ungenau] Project ERROR: Library 'open62541' is not defined.
    

    I don't know why I get this error. The library is at this path. Have you any ideas?

    Yes I am trying to implement an OPC UA Client. The OPC Server is from Siemens.



  • @N3ff3 said in Build http://code.qt.io/cgit/qt/qtopcua.git/tree/ standalone with Qt 5.9.1:

    @sirop

    I have changed the line

    win32: LIBS += open62541.lib ws2_32.lib
    

    with

    win32: LIBS += 'C:/Program Files (x86)/open62541/lib/open62541.lib' ws2_32.lib
    

    In my case it is:

    win32: LIBS += -LD:\QtProjects\open62541\Build\bin\Release open62541.lib ws2_32.lib
    

    so in your case smth. like:

    win32: LIBS += -L"C:\Program Files (x86)\open62541\lib"  open62541.lib ws2_32.lib
    

    but I am not sure about double quotes.

    Yes I am trying to implement an OPC UA Client. The OPC Server is from Siemens.

    Ok, I also have to deal with a Siemens OPC UA server.
    I'll go the way of coding my own C++ wrapper.

    Pay attention to https://github.com/open62541/open62541/issues/788#issuecomment-278582678 as you might need an additional encryption lib like https://github.com/KDE/qca .



  • @sirop

    Thank you for the tips, I think I have to build my own Wrapper to.

    Thank you for your Time!


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.