Forum: Compiler & IDEs QFSM für Windows mit VS 2022 Community Edition kompilieren


von Ralf (Gast)


Lesenswert?

Hallo,

ich würde gerne QFSM ( https://github.com/AaronErhardt/qfsm ) für 
Windows mit Visual Studio 2002 Community Edition kompilieren.

Installiert habe ich QT 4.8.7 und GraphViz. Importiert in VS habe ich 
das ganze als Cmake-Projekt.
Nach einer Anpassung der Pfade für GraphViz in der Datei CMakeLists.txt 
konnte der cmake-Cache erstellt werden und soweit ich sehen kann werden 
Qt und GraphViz auch gefunden.
VS hat eine x64-Konfiguration für das Projekt erstellt, das funktioniert 
aber nicht, da wohl Qt und/oder GraphViz nur 32-Bit sind - beim 
Kompilieren wurden +6000 Fehler geworfen. Als x86-Projekt bekomme ich 
"nur" 14 Fehler, alle werden in der Datei ImportGraphviz.cpp.obj 
geworfen und betreffen nicht gefundene externe Symbole, die der Linker 
wohl nicht finden kann:

LNK2019  Verweis auf nicht aufgelöstes externes Symbol "_agclose" in 
Funktion ""public: virtual class Project * __thiscall 
ImportGraphviz::doImport(void)" 
(?doImport@ImportGraphviz@@UAEPAVProject@@XZ)"

Wie werd ich jetzt aus der Fehlermeldung schlau draus, damit ich weiß wo 
es klemmt? Ich kenne mich mit Cmake leider nicht aus :( Soweit ich das 
verstanden habe, ist CMakeLists.txt die Basis für die Erstellung, hier 
wird alles notwendige geregelt und daher sollte es vermutlich 
out-of-the-box laufen(?).
Aus der Fehlermeldung kann ich aber leider keinen Rückschluss ziehen, 
wie ich nun an das Problem rangehe - ich sehe dass ein Symbol nicht 
gefunden wird, aber ich hab keine Idee, wo das Symbol ist und wie ich da 
rankomme. Was kann der Fehler sein?

1) Fehlt doch etwas in der CMakeLists.txt? In den Cmake-Settings von VS 
stehen auch die Pfade für Qt und GraphViz drin, die wurden selbständig 
gezogen, das scheint also alles zu klappen.
2) falsche Qt-Version runtergeladen? Zur Auswahl für 4.8.7 stehen:
x86-VS2008
x86-VS2010
x86-MingW482
Installiert habe ich VS2010, das "roch" so nach Visual Studio => besteht 
die Möglichkeit, dass diese Version nicht mit neueren Versionen von VS 
kompatibel ist und es deswegen nicht funktioniert?
3) Projekt falsch importiert? Ich habe aus dem VS-Startbildschirm heraus 
den Ordner geöffnet, wie es hier beschrieben steht:
https://docs.microsoft.com/en-us/cpp/build/cmake-projects-in-visual-studio?view=msvc-170

Hat evtl. jemand die Möglichkeit sowie Zeit und Lust, das mal bei sich 
auszuprobieren?

Ralf

von Oliver S. (oliverso)


Lesenswert?

Ralf schrieb:
> Installiert habe ich VS2010, das "roch" so nach Visual Studio => besteht
> die Möglichkeit, dass diese Version nicht mit neueren Versionen von VS
> kompatibel ist und es deswegen nicht funktioniert?

So wird’s wohl sein. Für Steinzeitsoftware brauchst du halt auch eine 
passende Steinzeittoolchain.

Oliver

von Oliver S. (oliverso)


Lesenswert?

Nachtrag: Da der Autor das wohl selber nur für Linux baut, wird’s unter 
Windows wohl weniger schwierig mit MinGW/Msys2 als mit Visual Studio 
hinzukriegen sein.

Oliver

von Ralf (Gast)


Lesenswert?

Hallo Oliver,

danke für deine Antworten.

>> Installiert habe ich VS2010, das "roch" so nach Visual Studio => besteht
>> die Möglichkeit, dass diese Version nicht mit neueren Versionen von VS
>> kompatibel ist und es deswegen nicht funktioniert?
> So wird’s wohl sein. Für Steinzeitsoftware brauchst du halt auch eine
> passende Steinzeittoolchain.
> Nachtrag: Da der Autor das wohl selber nur für Linux baut, wird’s unter
> Windows wohl weniger schwierig mit MinGW/Msys2 als mit Visual Studio
> hinzukriegen sein.
Worauf bezog sich die Steinzeitsoftware? Zuerst dachte ich der Bezug 
gilt der Qt-Version, aber dein Nachtrag deutet auf QFSM selbst hin oder 
interpretiere ich das nun falsch?

Ich schau mal, ob ich da mit MSYS2 weiterkomme, das kenn ich auch nicht 
:D

Ralf

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.