kompilacia na linuxe pre windows

Sekcia: Programovanie 04.10.2016 | 09:45
Avatar snuff   Návštevník

Potreboval by som radu,

Snazim sa skompilovat jeden plugin do QGISu..Skompilovat v linuxe sa mi ho podarilo bez problemov, ale potreboval by som to spravit pre windows a manual je pisany len pre linux. Okrem jedneho riadku, ze "However, anyone is free to compile it on their own chosen platform, including Microsoft Windows". Vystupom kompilacie je v podstate jeden ".so" subor. Pre windows by som potreboval teda jednu DLL.

postup v linuxe je nasledovny: cmake ./ make make install

Ma to nejake dependencies, ktore v linuxe stiahnut nie je problem.. Vo windowse asi bude: qgis libqgis-dev (ensure that you have only one version installed) libgdal-dev (ensure that you have only version installed) libspatialindex-dev libqca2-dev libgeos++-dev g++-5 cpp-5 cmake subversion libpoco-dev qt4-designer qt4-dev-tools libqt4-core libqt4-dev libqt4-sql-psql libqwt5-qt4-dev pyqt4-dev-tools libpqxx-dev (NB: version 4) postgresql (version 9.5) postgresql-server-dev-9.5 postgis postgresql-9.5-postgis libeigen3-dev libfann-dev

Ma niekto s niecim podobnym skusenost alebo ma vie nejak nasmerovat odkial zacat?

    • RE: kompilacia na linuxe pre windows 04.10.2016 | 14:06
      Avatar Mike_Stuffel   Návštevník

      link na plugin?

      • RE: kompilacia na linuxe pre windows 04.10.2016 | 20:04
        Avatar snuff   Návštevník

        http://www.qrap.org.za/

    • RE: kompilacia na linuxe pre windows 05.10.2016 | 18:16
      Avatar 3xc   Návštevník

      hint1: mingw-w64

      hint2: ak to ma dependency na QT tak potom pogoogluj "qt cross compile for windows on linux"

      hint3: google "cmake cross compile" hint4: upravíš cmakerules a zábava sa môže začať.



      Veľa šťastia a zábavy :)

      • RE: kompilacia na linuxe pre windows 06.10.2016 | 11:19
        Avatar snuff   Návštevník

        Diky, presne na toto som prisiel aj ja no cakal som ci neexistuje nieco jednoduchsie...Asi nie :) tak diky

        • RE: kompilacia na linuxe pre windows 06.10.2016 | 13:08
          Avatar bedňa LegacyIce-antiX  Administrátor

          Najľahšie to asi naportuješ, keď si stiahneš Qt for Windows, Visual Studio, Windows SDK, 32 bit gcc 4.9.1 toolchain z MinGW-w64. V odkaze je všetko popísané.

          Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
        • RE: kompilacia na linuxe pre windows 09.10.2016 | 16:22
          Avatar 3xc   Návštevník

          Pamätám si že QT pre windows som si vybuildoval priamo na Linuxe a potom už len zopár veci upravil a išlo to.

          Už neviem kde som sa odpichol možno tu http://stackoverflow.com/questions/10934683/how-do-i-configure-qt-for-cross-compilation-from-linux-to-windows-target

          alebo tu http://web.archive.org/web/20120129083154/http://blog.kermat.net/blog5.php/cross-compilation-with-qt?page=2



          Ale myslím že už nájdeš aj niečo viac user-friendly :)



          A ináč ako to ide ? Nejaký progress ? alebo už hotovo ?

          • RE: kompilacia na linuxe pre windows 11.10.2016 | 15:19
            Avatar snuff   Návštevník

            Nainstaloval som mxe http://mxe.cc/#tutorial

            Siel som podla navodu no chybaju mu este urcite zavislosti..A co s tym zatial neviem :)

            -- Found PkgConfig: /opt/mxe/usr/bin/i686-w64-mingw32.static-pkg-config (found version "0.28") -- Checking for module 'libtiff-4' -- Found libtiff-4, version 4.0.6 -- Found Qt4: /opt/mxe/usr/i686-w64-mingw32.static/qt/bin/qmake (found version "4.8.7") CMake Error at cmake/FindQGIS.cmake:98 (MESSAGE): Could not find QGIS Call Stack (most recent call first): CMakeLists.txt:168 (FIND_PACKAGE)

            • RE: kompilacia na linuxe pre windows 11.10.2016 | 15:27
              Avatar snuff   Návštevník

              klasicky cmake najde vsetky kniznice

              Found Qt4: /usr/bin/qmake (found version "4.8.7") -- Found QGIS Core: /usr/lib/libqgis_core.so -- Found QGIS Gui: /usr/lib/libqgis_gui.so -- Found QGIS Plugins Dir: /usr/lib/qgis/plugins -- Found QGIS Core: /usr/lib/libqgis_core.so -- Found QGIS Gui: /usr/lib/libqgis_gui.so -- Found QGIS Plugins Dir: /usr/lib/qgis/plugins -- 1) Found QGIS Plugins Dir: /usr/lib/qgis/plugins -- 1) Found QGIS Include Dir: /usr/include/qgis -- 2) Found QGIS Plugins Dir: /usr/lib/qgis/plugins/ -- 2) Found QGIS Include Dir: /usr/include/qgis -- 2) Found QGIS Core Library: /usr/lib/libqgis_core.so -- 2) Found QGIS GUI Library: /usr/lib/libqgis_gui.so -- 3) Found QGIS Plugins Dir: /usr/lib/qgis/plugins/ -- 3) Found QGIS Include Dir: /usr/include/qgis -- 3) Found QGIS Core Library: /usr/lib/libqgis_core.so -- 3) Found QGIS GUI Library: /usr/lib/libqgis_gui.so -- 4) Found QGIS Plugins Dir: /usr/lib/qgis/plugins/ -- 4) Found QGIS Include Dir: /usr/include/qgis -- 4) Found QGIS Core Library: /usr/lib/libqgis_core.so -- 4) Found QGIS GUI Library: /usr/lib/libqgis_gui.so -- 5) Found QGIS Plugins Dir: /usr/lib/qgis/plugins/ -- 5) Found QGIS Include Dir: /usr/include/qgis -- 5) Found QGIS Core Library: /usr/lib/libqgis_core.so -- 5) Found QGIS GUI Library: /usr/lib/libqgis_gui.so -- 6) Found QGIS Plugins Dir: /usr/lib/qgis/plugins/ -- 6) Found QGIS Core Library: /usr/lib/libqgis_core.so -- 6) Found QGIS GUI Library: /usr/lib/libqgis_gui.so -- 6) Found QGIS Include Dir: /usr/include/qgis -- CMAKE_CXX_FLAGS: -std=c++11 -std=gnu++11 -std=c++11 -- Configuring done -- Generating done

              mingwcmake nevie najst prave tie qgis kniznice s priponou A.. Tie som doinstaloval z repozitaru qgis vyrobcu :)

              Detecting CXX compile features - done -- Found Proj: /opt/mxe/usr/i686-w64-mingw32.static/lib/libproj.a -- Found Sqlite3: /opt/mxe/usr/i686-w64-mingw32.static/lib/libsqlite3.a -- GEOS Library: /opt/mxe/usr/i686-w64-mingw32.static/lib/libgeos.a -- GEOS Include: /opt/mxe/usr/i686-w64-mingw32.static/include -- Found GEOS: /opt/mxe/usr/i686-w64-mingw32.static/lib/libgeos.a -- Found GDAL: /opt/mxe/usr/i686-w64-mingw32.static/lib/libgdal.a -- Found PostgreSQL: /opt/mxe/usr/i686-w64-mingw32.static/lib/libpq.a -- Found Expat: /opt/mxe/usr/i686-w64-mingw32.static/lib/libexpat.a -- Found Qt4: /opt/mxe/usr/i686-w64-mingw32.static/qt/bin/qmake (found version "4.8.7") CMake Error at cmake/FindQGIS.cmake:98 (MESSAGE): Could not find QGIS Call Stack (most recent call first): CMakeLists.txt:168 (FIND_PACKAGE)
    • RE: kompilacia na linuxe pre windows 12.10.2016 | 11:22
      Avatar snuff   Návštevník

      nakoniec sa mi podarilo, uspesne zozbierat potrebne kniznice, prejst cez cmake a po sputeni prikazu make ma cakal tento vystup :

      /work/qrap/qrap.cpp: In member function 'void QRap::GetLink(double, double)': /work/qrap/qrap/qrap.cpp:770:16: error: 'gcvt' was not declared in this scope gcvt(lat,8,Lat); ^ CMakeFiles/qrapplugin.dir/build.make:624: recipe for target 'CMakeFiles/qrapplugin.dir/qrap.obj' failed make[2]: *** [CMakeFiles/qrapplugin.dir/qrap.obj] Error 1 CMakeFiles/Makefile2:99: recipe for target 'CMakeFiles/qrapplugin.dir/all' failed make[1]: *** [CMakeFiles/qrapplugin.dir/all] Error 2 Makefile:127: recipe for target 'all' failed make: *** [all] Error 2

      to uz je zrejme nad moje sily..

      • RE: kompilacia na linuxe pre windows 12.10.2016 | 11:55
        Avatar Dušan Kreheľ Debian  Používateľ

        Otvor subor /work/qrap/qrap/qrap.cpp a pridaj nasledujuci riadok

        #include <cstdlib>

        k ostatnim zacinajucim na

        #include

        v tom subore. Potom daj znova make.

        človek z Prešovského kraja
        • RE: kompilacia na linuxe pre windows 12.10.2016 | 12:19
          Avatar snuff   Návštevník

          Nepomohlo to , ale dakujem..Chyba zostala ta ista aj ked som tam pridal #include <cstdlib>

          • RE: kompilacia na linuxe pre windows 12.10.2016 | 13:20
            Avatar Dušan Kreheľ Debian  Používateľ

            Tu funkciu neskor z normy odstranili.... Obsah riadku 77 /work/qrap/qrap.cpp nahrad tymto:

            snprintf(Lat, 10, "%f\n", lat); // original gcvt(lat,8,Lat);
            človek z Prešovského kraja
            • RE: kompilacia na linuxe pre windows 12.10.2016 | 13:36
              Avatar Dušan Kreheľ Debian  Používateľ

              a to vlozene

              #include <cstdlib>
              mozes odstanit

              človek z Prešovského kraja
              • RE: kompilacia na linuxe pre windows 12.10.2016 | 14:11
                Avatar snuff   Návštevník
                /opt/mxe/usr/i686-w64-mingw32.static/include/direct.h:57:17: note: previous declaration 'char* getcwd(char*, int)' char *__cdecl getcwd(char *_DstBuf,int _SizeInBytes) __MINGW_ATTRIB_DEPRECATED_MSVC2005; ^ /work/qrap/qrap/qrap.cpp: In member function 'void QRap::GetLink(double, double)': /work/qrap/qrap/qrap.cpp:771:31: error: 'snprintf' was not declared in this scope snprintf(Lat, 10, "%f\n", lat); ^ /work/qrap/qrap/qrap.cpp:772:16: error: 'gcvt' was not declared in this scope gcvt(lon,8,Lon); ^

                Diky ale nepomohlo to..Nebudem to riesit uz , necham to klasicky na linuxe ..

                • RE: kompilacia na linuxe pre windows 12.10.2016 | 14:32
                  Avatar Dušan Kreheľ Debian  Používateľ

                  Pomohlo blizsie k vysledku ....

                  Posli mi v prilohe cely ten zdrojak suboru /work/qrap/qrap/qrap.cpp.

                  Nech to naraz cele opravim, a ptm Ti poslem. Treba v tom subore viac radkov prepisat.

                  človek z Prešovského kraja
                  • RE: kompilacia na linuxe pre windows 12.10.2016 | 14:52
                    Avatar snuff   Návštevník

                    Skus :)

                    • RE: kompilacia na linuxe pre windows 12.10.2016 | 14:54
                      Avatar snuff   Návštevník

                      priloha link je aj tu: https://ufile.io/ffd3

                      • RE: kompilacia na linuxe pre windows 12.10.2016 | 15:33
                        Avatar Dušan Kreheľ Debian  Používateľ

                        https://paste42.de/11085/nateraz

                        chybny vypisy posiel cez paste/prilohe - kvoli formatovaniu, nech nie je vsetko v jednom riadku

                        človek z Prešovského kraja
    • RE: kompilacia na linuxe pre windows 13.10.2016 | 07:38
      Avatar snuff   Návštevník

      Nebudem to riesit teraz tam vybehlo niekolko dalsich chyb a uz som vymyslel nahradne riesenie... Kazdopadne diky za pomoc..

      • RE: kompilacia na linuxe pre windows 13.10.2016 | 12:34
        Avatar Dušan Kreheľ Debian  Používateľ

        Hm, ak by som mal pristup ku prekladu, mohol som sa pozriet/poosetrovat chyby ... ale ok.

        človek z Prešovského kraja
        • RE: kompilacia na linuxe pre windows 13.10.2016 | 16:04
          Avatar samalama.   Návštevník

          a wld linux uz mas osetreny, ze ides mudrovat inym...?

          • RE: kompilacia na linuxe pre windows 13.10.2016 | 17:38
            Avatar 3xc   Návštevník

            Cítim narušenie sily :D