ich hab das Game of Life Beispiel mal nur mit CMake+VS2022 ohne QtCreator gebaut
also in der C:\Qt\MaintenanceTool.exe folgende Optionen zum installieren - du brauchst nur die paar sonst hast du nacher 60GB auf der Platte für tausend Sachen die man nicht braucht
unter Linux oder Mac kann man das alles mit den Distro Bordmitteln machen - läuft so out of the box mit Ubuntu, Fedora und Suse (kein Problem wenn es dann soweit ist)
dann bräuchtest du noch cmake - damit man mit dem VStudio, QtCreator, VisualStudio Code Projekte erzeugen, oder in der Konsole mit mingw oder linux gcc/clang arbeiten kann (was man eben möchte)
Download | CMake
CMake muss nicht installiert werden - man kann auch enfach die Zip-Datei irgendwo entpacken und beim erzeugen die entsprechende CMake.exe angeben (oder das CMake GUI starten)
ich hab dann basierend auf diesem Qt CMake Tutorial: https://doc.qt.io/qt-5/cmake-get-started.html
eine CMakeLists.txt erstellt mit der man das game of life Beispiel bauen kann
meine CMakeLists.txt - so eine Art Studio Solution Beschreibung nur eben für viele IDEs/Compiler - CMake ist nicht perfekt aber das am stärksten sich durchsetzende Build-System
CMakeLists.txt
dann einfach z.B. in d:\temp
eine
qt_test Ordner anlegen
in diesen https://github.com/sgelb/gameoflife.git clonen
meine CMakeLists.txt in den gameoflife Ordner kopieren
und noch einen __build Ordner in qt_test anlegen (wir bauen nicht inmitten unsere Quellen sondern machen ein Out-of-Source-Build damit unser Source-Code Baum sauber bleibt)
also so
d:\temp\qt_dev
+---gameoflife <-- git clone von https://github.com/sgelb/gameoflife.git
| .gitignore
| CMakeLists.txt <--- meine CMakeLists.txt
| COPYING
| game_of_life.pro
| golBoard.cpp
| golBoard.h
| golWindow.cpp
| golWindow.h
| main.cpp
| readme.md
| screenshot.png
|
\---__build <--- der __build Ordner musst du anlegen und darin CMake aufrufen: danach ist hier die sln zu finden
| game_of_life.sln
| [und und noch viele andere Dateien/Ordner]
+---Debug
| | game_of_life.exe <--- wird von dir erzeugt
| | Qt5Cored.dll <--- die qt dlls/pdbs musst du hier hin kopieren aus C:\Qt\5.15.2\msvc2019_64\bin
| | Qt5Cored.pdb
| | Qt5Guid.dll
| | Qt5Guid.pdb
| | Qt5Widgetsd.dll
| | Qt5Widgetsd.pdb
| |
| \---platforms <--- den Ordner muss du selber erstellen und die beiden Dateien aus C:\Qt\5.15.2\msvc2019_64\plugins\platforms kopieren
| qwindowsd.dll
| qwindowsd.pdb
+---Release
| Qt5Core.dll <--- die qt dlls/pdbs musst du hier hin kopieren aus C:\Qt\5.15.2\msvc2019_64\bin
| Qt5Gui.dll
| Qt5Widgets.dll
|
\---platforms <--- den Ordner muss du selber erstellen und die Datei aus C:\Qt\5.15.2\msvc2019_64\plugins\platforms kopieren
qwindows.dll
Alles anzeigen
der CMake aufruf sollte bei dir so aussehen:
D:\temp\qt_dev\__build>cmake ..\gameoflife -DCMAKE_PREFIX_PATH=C:\Qt\5.15.2\msvc2019_64
dann kannst du die Solution aufmachen und mit VS2022 bauen, geht aber auch genau so mit QtCreator und dann auch so unter Linux, Mac,...
wirkt auf einen Hobby Programmierer vielleicht etwas umständlich/umfangreich aber das ist so ziemlich der Weg wie die meisten Open Source Projekte auf Github aufgebaut sind
und wichtig: die Studio Solution Sachen werden nicht eingecheckt - also der _build-Ordner - die Studio Solution ist nur eine Sache für dich, die erzeugt du dir einmal auf deinem System und fertig
wenn du neue Dateien hinzufuegen willst cpp,hpp usw. dann einfach die CMakeLists.txt reinschreiben und das landet dann automatisch in der Solution
wenn ich mit einem andern Kompiler oder IDE arbeite hat die Solution keine relevanz und ist unbedeutend - also nicht einchecken
für ein Linux Build unter Ubuntu 21.10 oder aktueller
braucht man nur
gleiche Verzeichnis-Hierary, clone und meine CMakeLists.txt und dann
linux@linux-virtual-machine:~$ sudo apt -y install build-essential cmake mesa-common-dev qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools git
...
linux@linux-virtual-machine:~$ mkdir qt_dev
linux@linux-virtual-machine:~$ cd qt_dev/
linux@linux-virtual-machine:~/qt_dev$ git clone https://github.com/sgelb/gameoflife.git
Cloning into 'gameoflife'...
remote: Enumerating objects: 148, done.
remote: Total 148 (delta 0), reused 0 (delta 0), pack-reused 148
Receiving objects: 100% (148/148), 111.14 KiB | 4.45 MiB/s, done.
Resolving deltas: 100% (91/91), done.
meine CMakeLists.txt in gameoflife Ordner kopieren
linux@linux-virtual-machine:~/qt_dev$ mkdir __build
linux@linux-virtual-machine:~/qt_dev$ cd __build/
linux@linux-virtual-machine:~/qt_dev/__build$ cmake ../gameoflife/
-- The CXX compiler identification is GNU 11.3.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: /home/linux/qt_dev/__build
linux@linux-virtual-machine:~/qt_dev/__build$ make -j8
[ 16%] Automatic MOC and UIC for target game_of_life
[ 16%] Built target game_of_life_autogen
...
Alles anzeigen
Build mit mingw-w64 mit msys2 - Windows GCC
msys2 installieren: https://www.msys2.org/
mit "MSYS2 MinGW x64" starten
pacman -Syu
[optional msys2 Neustart]
pacman -Syu
pacman -S mingw-w64-x86_64-toolchain
pacman -S mingw-w64-x86_64-cmake
pacman -S mingw-w64-x86_64-make
pacman -S mingw-w64-x86_64-ninja
pacman -S mingw-w64-x86_64-qt5
in d:\temp\qt_dev einen __build_mingw Ordner anlegen
in d:\temp\qt_dev\__build_mingw
$ cmake -G "Ninja" ../gameoflife/ -DCMAKE_PREFIX_PATH=/usr/local/Qt5
$ ninja -j8
$ ./game_of_life.exe
Alles anzeigen
und noch was: das gameoflife Beispiel macht die UI im Code d.h. es wird kein UI-Editor gebraucht, ich denke das reicht für den Karten-Editor - oder willst du unbedingt mit der Maus deine Buttons und Radioboxen positionieren?