Subject: RE: QT
From: Josifovski Ljubomir-BLJ01Z <[email-masked]>
To: "Cygwin Mailing List (E-mail)" <[email-masked]>
Cc: "[email-masked]'" <[email-masked]>, "[email-masked]'" <[email-masked]>
Date: Tue, 13 Feb 2001 17:45:18 -0000

Not directly related to QT, but maybe someone can help me.

I'm trying to link an application I need with a library libqtai that uses
libqt and libGL (found in xfree/contrib/sgi-opengl.tar.bz2). When I try to
link my application with the libraries, ex:

$ g++       -I.  -I /home/ljupco/CTK/include/ctk  -Wall -O2   -D_HAS_QT
-D_HAS_CURSES -o /home/ljupco/CTK/local/bin/CTKScript
/home/ljupco/CTK/lib/CTKScript.o my_blocks.o my_translation_table.o
-L/home/ljupco/CTK/lib -L/usr/local/qt/lib -L/usr/X11R6/lib -lctk
/usr/local/qtai/lib/libqtai.a -lqt -lm -lcurses -lXmu -lXext -lSM -lICE
-lGLU -lglut -lX11 -lGL

I get error like:

/usr/local/qtai/lib/libqtai.a(aiplot3d.o)(.text+0x5a26): undefined reference
to `glPushMatrix@0'

I see that libqtai needs:

$ nm /usr/local/qtai/lib/libqtai.a|grep  glPushMatrix
         U _glPushMatrix@0

(also 

$ nm /usr/local/qtai/aiplot3d.o |grep  glPushMatrix
         U _glPushMatrix@0
)

While libGL provides:

$ nm /usr/X11R6/lib/libGL.a |grep glPushMatrix
00000000 I ___imp_glPushMatrix
00000000 I __imp__glPushMatrix
00000000 T _glPushMatrix

(also 

$ nm /usr/X11R6/static-lib/libGL.a |grep glPushMatrix
00004ab8 T _glPushMatrix

)

Is this the names mangling thingy that c++ ("@parameters-derived-signature")
does versus the way c does it ("_" before the name)? But I see that the
<GL/glut.h> header included from aiplot3d.cpp (and the headers it includes)
have the "#ifdef __cpluplus extern "C" {" stuff. So where does @0 (in "U
_glPushMatrix@0") come from?

The metacompiler (moc) is used while creating the libqtai creating
moc_aiplot3d.cpp. Can this be the problem?

thanks in advance,

-- 
Ljubomir Josifovski
mailto:[email-masked],[email-masked]
http://www.dcs.shef.ac.uk/~ljupco

--
Want to unsubscribe from this list?
Check out: http://cygwin.com/ml/#unsubscribe-simple