PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : mehrere cpp dateien kompilieren



TheGilb
28-10-2001, 20:59
Hallo!
Habe folgendes Problem. Bin gerade dabei, das Tutorial von kde-women.org durchzuarbeiten. Jetzt habe ich folgendes Problem. Wie komme ich denn zu einem ausführbaren Programm, wenn ich 2 cpp Dateien habe. (headerdateien kann man ja in seiner main.cpp unter #include einfügen, aber was macht man mit cpp dateien).
Hier sind mal die quellcodes:
main.cpp

#include <kapp.h>
#include "p3.h"

int main( int argc, char **argv )
{
KApplication a( argc, argv, "p3");

MainWindow *window=new MainWindow( "Tutorial - p3" );
window->resize( 400, 300 );

a.setMainWidget( window );
window->show();

return a.exec();
}

-------------------------------

p3.h

#include <kmainwindow.h>

class MainWindow : public KMainWindow
{
Q_OBJECT
public:

MainWindow ( const char * name );

public slots:
void fileOpen();
void fileSave();
};

--------------------------------------

p3.cpp

#include "p3.h"
#include <kfiledialog.h>
#include <kapp.h>
#include <kmenubar.h>
#include <klocale.h>
#include <kmessagebox.h>
#include <qtextview.h>

MainWindow::MainWindow ( const char * name ) : KMainWindow ( 0L, name )
{
setCaption("KDE Tutorial - p3");

QPopupMenu *filemenu = new QPopupMenu;
filemenu->insertItem( i18n( "&Open" ), this, SLOT(fileOpen()) );
filemenu->insertItem( i18n( "&Save" ), this, SLOT(fileSave()) );
filemenu->insertItem( i18n( "&Quit" ), kapp, SLOT(quit()) );
QString about =
i18n("p3 1.0\n\n"
"(C) 1999-2001 Antonio Larrosa Jimenez\n"
"larrosa@kde.org\t\tlarrosa@suse.de\n"
"Malaga (Spain)\n\n"
"Simple KDE Tutorial\n"
"This tutorial comes with ABSOLUTELY NO WARRANTY\n"
"This is free software, and you are welcome to redistribute it\n"
"under certain conditions\n");

QPopupMenu *helpmenu = helpMenu( about );
KMenuBar *menu = menuBar();
menu->insertItem( i18n( "&File" ), filemenu );
menu->insertSeparator();
menu->insertItem( i18n( "&Help" ), helpmenu );

QTextView *hello=new QTextView(
i18n("<H2>Hello World !</H2><BR>This is a simple"
" window with <I><font size=5><B>R<font color=red"
" size=5>ich </font><font color=blue size=5>Text"
"</font></B></I> capabilities<BR>Try to resize"
" this window, all this is automatic !"), "", this );
setCentralWidget( hello );

}

void MainWindow::fileOpen()
{
KURL filename = KFileDialog::getOpenURL( QString::null, "*", this );
QString msg = QString( i18n("Now this app should open the url %1 .") ).arg(filename.url());
KMessageBox::information( 0, msg, i18n( "Information" ),
"fileOpenInformationDialog" );
}

void MainWindow::fileSave()
{
KURL filename=KFileDialog::getSaveURL( QString::null, "*", this );
}
-------------------------------------

Danke für eure Hilfe :-)

Markus

Trillian
28-10-2001, 21:04
Ganz sicher:
g++ -c main.cpp
g++ -c p3.cpp
g++ main.o p3.o

g++ -o main main.cpp p3.cpp
könnte auch gehen.

Aber am besten ist, du lernst schonmal, wie man "make" benutzt :D

TheGilb
29-10-2001, 17:46
Danke!

P.S. Ich weiß schon wie man make benutzt, allerdings kann ich nur makefiles mit tmake produzieren, und deshalb nur qt header in diese .pro datei einbinden. Weiß vielleicht jemand wie man auch kde header einbindet?

Markus

[ 29. Oktober 2001: Beitrag editiert von: TheGilb ]

Trillian
29-10-2001, 20:10
Mit "-lkde" gegen die KDE Libs linken? oder was meinst du?
btw: das "kde" hab ich mir ausgedacht, keine Ahnung wie das bei KDE wirklich heisst.

TheGilb
29-10-2001, 21:22
Ne, mittlerweile hab ichs rausgefunden. Anscheinend generiert autoconf/automake unter kde die makefiles, und nicht (wie bei qt) tmake!

Danke


Markus