[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-devel
Subject: RE: Hello World newbie woes
From: "Martin Welch" <martin () welch ! eclipse ! co ! uk>
Date: 2004-03-31 23:05:43
Message-ID: GIEKKMAAMELBNKEJJKHGMEDCCMAA.martin () welch ! eclipse ! co ! uk
[Download RAW message or body]
> > \r? The only thing I can think of is that you wrote your scripts in a
> > DOS-style editor, so the lines end in \r\n instead of \n. The \r is
> > taken to be a part of the filename instead of line-termination.
Yep. That's notepad for you. Thanks.
I've finally got KDbg installed thanks to rpmfind and added the -g switch:
c++ -c -I$KDEDIR/include -I$QTDIR/include -fno-rtti -g main.cpp -o main.o
$QTDIR/bin/moc khello.h -o khello.moc
c++ -c -I$KDEDIR/include -I$QTDIR/include -fno-rtti -g khello.cpp -o khello.o
c++ -L$KDEDIR/lib -L$QTDIR/lib -lkdeui -lkdecore -lqt-mt -ldl -o khello -g main.o \
khello.o
I've opened the executable in Kdbg but I can't run, step into etc -- does the g \
switch need to be in a particular place?
Cheers!
Martin
-----Original Message-----
From: Thiago Macieira [mailto:thiago.macieira@kdemail.net]
Sent: 31 March 2004 16:19
To: kde-devel@kde.org
Subject: Re: Hello World newbie woes
Martin Welch wrote:
> I'm fairly confident that the source code is right and its my build
> scripts that are wrong.
> Q1: Why does the output files (hello.o etc) always have an \r appended
> to the names?
\r? The only thing I can think of is that you wrote your scripts in a
DOS-style editor, so the lines end in \r\n instead of \n. The \r is
taken to be a part of the filename instead of line-termination.
> The only thing in my scripts that's different is that I've changed -qt
> to $QTDIRqt since
> ld couldn't find qt. My understanding here is -L/blah says the
> compiler should look in /blah for libraries and -lfoo says the
> library is called foo. At runtime my program 'knows' to load foo but
> doesn't know where foo resides. If, OTOH, I use -l/blah/foo my
> program will expect to load foo from /blah -- the path is hardcoded.
> Q2: On my machine then (L/blah -lfoo) == (-l/blah/foo) ?
No, what you're doing works, but it's not the recommended way. You
should be using -L/blah -lfoo to link to /blah/libfoo.so. What you're
missing is telling the dynamic loader where to find those libraries.
One alternative is to add the directory to /etc/ld.so.conf. Another is
to specify it in LD_LIBRARY_PATH. A third, and this is what KDE uses
for its own libraries, is to replace -L with -R. That'll make the
linker generate an RPATH symbol on the ELF header with the pathname of
where to find hte library.
> From the other message:
> Using host libthread_db library "/lib/tls/libthread_db.so.1".
> [Thread debugging using libthread_db enabled]
> [New Thread 1093039872 (LWP 2723)]
> 0xffffe410 in ?? ()
> #0 0xffffe410 in ?? ()
That looks like stack corruption. You'll have to run the program
step-by-step on the debugger and tell us what line is faulting. Add
breakpoints to your slots.
Hint: never set the geometry by hand. Prefer to use grids in your
dialogs. Better yet, use .ui files.
--
Thiago Macieira - Registered Linux user #65028
thiago (AT) macieira (DOT) info
ICQ UIN: 1967141 PGP/GPG: 0x6EF45358; fingerprint:
E067 918B B660 DBD1 105C 966C 33F5 F005 6EF4 5358
> > Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic