This is the mail archive of the
cygwin
mailing list for the Cygwin project.
Re: Compiling TCL C extensions using Cygwin gcc
- From: Reini Urban <rurban at x-ray dot at>
- To: Jingzhao Ou <jasonou at yahoo dot com>
- Cc: cygwin at cygwin dot com
- Date: Wed, 01 Sep 2004 04:34:01 +0200
- Subject: Re: Compiling TCL C extensions using Cygwin gcc
- References: <20040831223210.73946.qmail@web80404.mail.yahoo.com>
Jingzhao Ou schrieb:
I tried to compile a simple Tcl C extension using Cygwin gcc. I use the
following commands:
gcc -shared -ltcl -L/lib random.o
I got the following error messege:
random.o(.text+0x31):random.c: undefined reference to `_Tcl_WrongNumArgs'
random.o(.text+0x5e):random.c: undefined reference to `_Tcl_GetIntFromObj'
random.o(.text+0x98):random.c: undefined reference to `_Tcl_GetObjResult'
random.o(.text+0xad):random.c: undefined reference to `_Tcl_SetIntObj'
random.o(.text+0xe2):random.c: undefined reference to `_Tcl_PkgRequire'
random.o(.text+0x11a):random.c: undefined reference to `_Tcl_CreateObjCommand'
random.o(.text+0x135):random.c: undefined reference to `_Tcl_PkgProvide'
collect2: ld returned 1 exit status
I can see that tcl.h is located at /usr/include. Also, libtcl84.a and
libtclstub84.a are located at /lib.
Can any one kindly help me out?
lots of beginners mistakes: there's a good gcc primer in the net. please
check that out.
http://www.network-theory.co.uk/gcc/intro/
1. libs after the source,
2. library search path before the lib, otherwise it will not find it.
3. -shared ???
See that there's an tcl .a lib but no .dll (for completeness sake: no
.la pointing to a .dll at /usr/bin), so you cannot build a shared exe.
=> gcc random.c -L/usr/lib -ltcl -o random
but -L/usr/lib is redundant because thats in the standard search path
=> gcc random.c -ltcl -o random
Note: the .exe extension is added automatically to random.
--
Reini Urban
http://xarch.tu-graz.ac.at/home/rurban/
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/