kompilieren mit mpic++

Alles rund um die Programmierung mit Qt
Antworten
Flashpixx
Beiträge: 29
Registriert: 10. Juli 2007 12:54
Kontaktdaten:

kompilieren mit mpic++

Beitrag von Flashpixx »

Hallo,

ich habe in einem Projekt die Boost Bibliothek mit MPI Zugriff. Nun soll in das Programm noch eine GUI unter Qt implementiert werden. Gibt es eine Möglichkeit die Qt GUI Klassen mit g++ oder mpic++ direkt zu kompilieren, d.h. ohne qmake zu verwenden?

Ich müsste doch nur qmake verwenden, um die moc_ Dateien zu erzeugen und dann diese mit mpic++ entsprechend zu kompilieren. Das ganze möchte ich über ein einfaches Makefile machen. Hätte jemand da ein paar Tips für mich, wie ich das realisieren könnte?

Danke

Phil
Chris81T
Beiträge: 82
Registriert: 4. Mai 2008 00:06
Wohnort: Urbar

Beitrag von Chris81T »

Ich würde mal behaupten, dass das nicht geht.

Denn auch ein simples QWidget besitzt Signale und Slots. Also mit "signals:" und zB "public slots:" definiert. Auch Makros wie das Q_OBJECT werden sich in den Sourcen finden.

Das sind alles Dinge, die std.gemäß erst einmal nicht erkannt werden können beim "direkten" kompilieren. Außer du bringst es dem Compiler bei, aber das ist ja das, was einem Qt abnimmt.

Aber was spricht denn dagegen, ein Qt Project zu verwenden? Deine boost libs kannst du ja trotzdem problemlos weiterverwenden.
Oder musst die Geschichte irgendwie kapseln, voneinander trennen, aber dafür kennt man das eigentliche Projekt nicht, ob es dafür Sinn machen könnte.
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

QMake macht aber auch nix anderes als Makefiles zu erstellen - und mit denen geht das mit Q_OBJECT doch auch problemlos?
Man muss halt eigene targets für uic und moc definieren, in denen dann moc und uic auf die Dateien losgelassen wird, fertig.

Ich würde es aber trotzdem nicht machen, ist zu umständlich und fehleranfällig :P
Verwende Makefile-Generatoren, mit denen du auf verschiedenen Plattformen/Compilern/... immer passende Makefiles - oder eben projectfiles für MS VS, codeblocks, ... - bekommst. Und das muss nicht qmake sein. Ich verwende das nur wenn ich ganz schnell was testen will. Für Projekte verwende ich immer cmake.
Flashpixx
Beiträge: 29
Registriert: 10. Juli 2007 12:54
Kontaktdaten:

Beitrag von Flashpixx »

Danke für die Infos.
Das Problem ist folgendes, im Moment kompiliere ich mit mpic++, d.h. einmal erzeugt es die *.o Dateien und linkt dann passend die Boost-MPI Bibliotheken hinzu.

Ich kann die Sources nicht ohne mpic++ kompilieren oder linken, das führt dann zu Fehlermeldungen, d.h. ich muss aus den Klassen, die Qt Elemente beinhalten die entsprechenden Codes so erzeugen, dass ich ihn mit mpic++ verarbeiten kann.

Wenn ich ein reines Qt Project aufbaue ist das alles kein Problem, es geht halt wirklich um diese Zwischenschritt, dass mit eben die die entsprechenden Zwischendateien erzeugt werden. Hat das jemand schon einmal jemand per Hand gemacht? Das Kommando "moc" gibt es ja, nur wie verwendet man das dann genau?
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Was ich jetzt gelesen hab ist mpic++ nur ein Wrapper um deinen normalen Compiler mit Extra-Magic für MPI. Verwende QMake oder CMake oder $(XYZ-Makefile-Generator), und setze den Compiler auf mpi[cc|cxx].
Das geht über QMAKE_CC / QMAKE_CXX für qmake, bzw. CMAKE_C_COMPILER / CMAKE_CXX_COMPILER bein cmake. Fertig.
Flashpixx
Beiträge: 29
Registriert: 10. Juli 2007 12:54
Kontaktdaten:

Beitrag von Flashpixx »

Danke, wenn das so einfach geht, dann ist es genau das was ich brauche
Antworten