Makefile aendern
Makefile aendern
Hallo,
ich habe mit qmake mir ein Makefile generiert, funktioniert einwandfrei. Am Ende kommt ein Programm "file1" raus. Nun moechte ich dem Makefile noch sagen er soll noch ein komplett anderes Program zur gleichen Zeit mit uebersetzen, aus file2.cpp soll file2 werden, ein neues Executable.
Wenn ich nun einfach file2.cpp im gleichen Verzeichnis habe wie file1.cpp sagt mir make hinterher ich haette 2 main(), sprich er versucht die beiden cpp's in ein exe zu packen - was er aber nicht soll.
Ich habe dann im Makefile unter der TARGET Variabeln noch file2 angegeben. Funzt aber auch nicht. Was muss ich im Makefile alles verbiegen?
Danke,
J.
ich habe mit qmake mir ein Makefile generiert, funktioniert einwandfrei. Am Ende kommt ein Programm "file1" raus. Nun moechte ich dem Makefile noch sagen er soll noch ein komplett anderes Program zur gleichen Zeit mit uebersetzen, aus file2.cpp soll file2 werden, ein neues Executable.
Wenn ich nun einfach file2.cpp im gleichen Verzeichnis habe wie file1.cpp sagt mir make hinterher ich haette 2 main(), sprich er versucht die beiden cpp's in ein exe zu packen - was er aber nicht soll.
Ich habe dann im Makefile unter der TARGET Variabeln noch file2 angegeben. Funzt aber auch nicht. Was muss ich im Makefile alles verbiegen?
Danke,
J.
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Also ich habe jetzt folgedes
testapp/dir1/file1.cpp
testapp/dir1/file1.h
testapp/dir1/main.cpp
testapp/dir2/file2.cpp
Also alles schoen sortiert. Im Verzeichniss testapp rufe ich dann
qmake -project
qmake
make auf, make liefert dann
Ich waere auch bereit mir ein makefile selber zu bauen, fuer ein 08/15 c++ file bekomme ich das auch hin (im einfachsten Falle), aber hier weiss ich gar nicht welche Befehle das make ausfuehren sollte...
testapp/dir1/file1.cpp
testapp/dir1/file1.h
testapp/dir1/main.cpp
testapp/dir2/file2.cpp
Also alles schoen sortiert. Im Verzeichniss testapp rufe ich dann
qmake -project
qmake
make auf, make liefert dann
Code: Alles auswählen
initcall.o: In function `main':
initcall.cpp:(.text+0x1dd0): multiple definition of `main'
main.o:main.cpp:(.text+0x0): first defined here
/usr/lib/gcc/i586-suse-linux/4.0.2/../../../../i586-suse-linux/bin/ld: Warning: size of symbol `main' changed from 188 in main.o to 5037 in initcall.o
collect2: ld returned 1 exit status
make: *** [callintegrator] Error 1
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Die pro-Files musst Du erstellen und mit ausliefern.
In deine beiden Unterverzeichnisse kommt je ein pro-File zum Erzeugen des jeweiligen Targets, ins 'Hauptvezeichnis' das pro-File mit TARGET = subdirs. Dann generiert qmake automatisch alle Makefile, auch in den Unterverzeichnissen.
Ich vergass: in das pro-File im Hauptverzeichnis muss noch "SUBDIRS = dir1 dir2" damit er die Subdirs auch mit benutzt.
In deine beiden Unterverzeichnisse kommt je ein pro-File zum Erzeugen des jeweiligen Targets, ins 'Hauptvezeichnis' das pro-File mit TARGET = subdirs. Dann generiert qmake automatisch alle Makefile, auch in den Unterverzeichnissen.
Ich vergass: in das pro-File im Hauptverzeichnis muss noch "SUBDIRS = dir1 dir2" damit er die Subdirs auch mit benutzt.
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
Super das sieht sehr gut aus. Bleibt noch die Frage warum ich das pro File selber aendern muss und es qmake nicht von alleine versteht?
Und nun noch die viel wichtigere Frage:
Wenn ich das pro (aber NICHT das make file) ausliefere - und so hatte ich dich verstanden - bleibt noch die Frage wie ich ein "make install" bauen kann. Wenn ich das Makefile schon haette koennte ich ja einfach
einbauen. Aber da das Makefile erst noch generiert wird?
Und nun noch die viel wichtigere Frage:
Wenn ich das pro (aber NICHT das make file) ausliefere - und so hatte ich dich verstanden - bleibt noch die Frage wie ich ein "make install" bauen kann. Wenn ich das Makefile schon haette koennte ich ja einfach
Code: Alles auswählen
install:
cp bla nach blub
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
qmake -project erzeugt nur ein template das man noch bearbeiten muss. qmake kann ja nicht wissen was für externe libs du z.B. noch brauchst.
Zum Install schau am besten mal in die Doku. Dort stehen alle Varaiblen die in pro-Dateien verwenden werden können: http://doc.trolltech.com/4.2/qmake-vari ... ml#destdir
Zum Install schau am besten mal in die Doku. Dort stehen alle Varaiblen die in pro-Dateien verwenden werden können: http://doc.trolltech.com/4.2/qmake-vari ... ml#destdir
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung