Home » Developer & Programmer » Precompilers, OCI & OCCI » sqlcxt
sqlcxt [message #171300] Tue, 09 May 2006 06:15 Go to next message
raom
Messages: 22
Registered: January 2006
Location: india
Junior Member
Hi could any body tell me how fix the below error
i am grttin this compiling a .c file with cc

.c file is from a .pc file precompiled by proc

ld:
Unresolved:
sqlcxt
Re: sqlcxt [message #171357 is a reply to message #171300] Tue, 09 May 2006 08:48 Go to previous messageGo to next message
Frank Naude
Messages: 4579
Registered: April 1998
Senior Member
See http://www.orafaq.com/faq/how_does_one_compile_a_pro_c_program
Re: sqlcxt [message #171592 is a reply to message #171357] Wed, 10 May 2006 08:40 Go to previous messageGo to next message
mhenderson
Messages: 15
Registered: May 2006
Junior Member
Sorry, I posted this in the wrong place:

Hello,

I am trying to compile using a proc.mk file that I will list at the bottom. I compiled with success, then when I added code to connect to the DB, I receive this error:

Undefined first referenced
symbol in file
sqlcxt

I looked at that link and it seems I am calling the make file correctly: make -f demo_proc.mk EXE=sdcf_bot OBJS=sdcf_bot.o

I have searched around the forums and see to check the $ORACLE_HOME/precomp/lib, but I am not sure what I am looking for there, there is no sqlcxt.so file. Does this have to do with libraries, or the fact that I am getting an error trying to connect? Any help would be great.

proc.mk

#
# $Header: proc.mk.pp 1.17 94/10/03 10:38:51 pluong Osd<unix> $ proc.mk.pp
#
#
# proc.mk - Command file for "make" to compile and load Pro*C 2.0 programs.
#
# Usage to build any program:
# make -f proc.mk EXE=xyz OBJS="a.o b.o c.o"
#
# Special syntax to link demo program:
# make -f proc.mk sample1
#
# Special syntax to link and install proc executable:
# make -f proc.mk install
#
# NOTE: ORACLE_HOME must be either:
# . set in the user's environment
# . passed in on the command line
# . defined in a modified version of this makefile
#
# Pro*C programs are assumed to have the extension ".pc"
#

SHELL=/bin/ksh

ORACLE_HOME=/u01/app/oracle/product/9.2.0.6

LIBHOME=$(ORACLE_HOME)/lib

I_SYM= -I

CC=gcc

CFLAGS=-g
COMPOBJ=$(ORACLE_HOME)/lib
COMPOBJS=$(COMPOBJ)/crti.o $(COMPOBJ)/crt1.o $(COMPOBJ)/__fstd.o
LDSTRING= -Y P,$(LD_LIBRARY_PATH):/usr/ccs/lib:/usr/lib -Qy -lc $(COMPOBJ)/crtn.o
CC= ld -dy $(COMPOBJS)
ASFLAGS=-P
RCC=gcc -I. -O

CFLAGS=

LDFLAGS=-L$(LIBHOME)

ARLOCAL=

AR=ar $(ARLOCAL)
ARCREATE=ar cr$(ARLOCAL)
ARDELETE=ar d$(ARLOCAL)
ARREPLACE=ar r$(ARLOCAL)

ECHO=$(ORACLE_HOME)/bin/echodo

OTHERLIBS=`cat $(ORACLE_HOME)/lib/sysliblist` $(MLSLIBS) $(LDSTRING)

LLIBPSO=
LLIBPSO=-lstublm

XLIBHOME = /usr/lib
MOTIFLIBHOME = /usr/lib
MOTIFLIBS = -L$(MOTIFLIBHOME) -lXm -L$(XLIBHOME) -lXt -lX11 -lm

MOTIFLIBS = -L$(MOTIFLIBHOME) -lXm -lgen -L$(XLIBHOME) -lXt -lX11 -lw -lm

CLIBS=$(OTHERLIBS)

SO=a

NLSRTLHOME= $(SRCHOME)/nlsrtl23

NLSRTLLIB= -lnlsrtl
LIBNLSRTL= $(LIBHOME)/libnlsrtl.a
LLIBNLSRTL=-lnlsrtl

NLSRTLINC= $(I_SYM)$(NLSRTLHOME)/oracore/public
NLSRTLPUBLIC= $(I_SYM)$(NLSRTLHOME)/public $(STDINCLUDE)

COREHOME= $(SRCHOME)/oracore

LIBCORE= $(LIBHOME)/libcore.$(SO)
LIBCV6= $(LIBHOME)/libcv6.$(SO)
LLIBCORE= -lcore
LLIBCV6= -lcv6

CORELIBD= $(LIBNLSRTL) $(LIBCV6) $(LIBCORE)
CORELIBS= $(LLIBNLSRTL) $(LLIBCV6) $(LLIBCORE) $(LLIBNLSRTL) $(LLIBCV6) $(LLIBCORE)

LIBNETWORK= $(LIBHOME)/libnetwork.a
NTCONTAB= $(LIBHOME)/ntcontab.o

TNSLIBS= -lnetwork
TNSLIBD= $(LIBNETWORK)

LIBNETV2= $(LIBHOME)/libnetv2.a
NETV2LIBS= -lnetv2 $(TNSLIBS)
NETV2LIBD= $(LIBNETV2) $(TNSLIBD)

LIBNSG= $(LIBHOME)/libnsg.a
LLIBNSG= -lnsg
NSGLIBS= $(LLIBNSG)
NSGLIBD= $(LIBNSG)

OSNTABST= $(LIBHOME)/osntabst.o
LIBSQLNET= $(LIBHOME)/libsqlnet.a
SQLNETLIBS= -lsqlnet


LIBPLS= $(LIBHOME)/libpls.a
LLIBPLS= -lpls

LIBTK2C= $(LIBHOME)/libtk2c.a
LLIBTK2C= -ltk2c
LIBTK2M= $(LIBHOME)/libtk2m.a
LLIBTK2M= -ltk2m
LIBTK2P= $(LIBHOME)/libtk2p.a
LLIBTK2P= -ltk2p
LIBTK2UC= $(LIBHOME)/libuc.a
LLIBTK2UC= -luc
LIBTK2REM= $(LIBHOME)/librem.a
LLIBTK2REM= -lrem
LIBTK2ROS= $(LIBHOME)/libros.a
LLIBTK2ROS= -lros
LIBTK2OT= $(LIBHOME)/libot.a
LLIBTK2OT= -lot
LIBTK2OTX= $(LIBHOME)/libotx.a
LLIBTK2OTX= -lotx
LIBTK2UT= $(LIBHOME)/libut.a
LLIBTK2UT= -lut
LIBTK2SL= $(LIBHOME)/libsl.a
LLIBTK2SL= -lsl
LIBTK2RE= $(LIBHOME)/libre.a
LLIBTK2RE= -lre

TK2UICLIBD= $(LIBTK2RE) $(LIBTK2UC) $(LIBTK2C) $(LIBTK2OT) $(LIBTK2REM) $(LIBTK2ROS) $(LIBTK2P) $(LIBTK2UT) $(LIBTK2SL)

TK2UICLIBS= $(DYNAMIC_ON_TK2) $(LLIBTK2SL) $(LLIBTK2RE) $(LLIBTK2UC) $(LLIBTK2C) $(LLIBTK2OT) $(LLIBTK2RE) $(LLIBTK2REM) $(LLIBTK2ROS) $(LLIBTK2C) $(LLIBTK2P) $(LLIBTK2C) $(LLIBTK2P) -lm $(LLIBTK2REM) $(LLIBTK2C) $(LLIBTK2OT) $(LLIBTK2UT) $(LLIBTK2UC) $(LLIBTK2SL) $(LLIBTK2C) $(DYNAMIC_OFF_TK2)

TK2UIMLIBD= $(LIBTK2OT) $(LIBTK2RE) $(LIBTK2UC) $(LIBTK2REM) $(LIBTK2ROS) $(LIBTK2M) $(LIBTK2P) $(LIBTK2UT) $(LIBTK2SL)

TK2UIMLIBS= $(DYNAMIC_ON_TK2) $(LLIBTK2OT) $(LLIBTK2RE) $(LLIBTK2UC) $(LLIBTK2REM) $(LLIBTK2ROS) $(LLIBTK2M) $(LLIBTK2P) $(LLIBTK2M) $(LLIBTK2P) $(LLIBTK2M) $(LLIBTK2OT) $(LLIBTK2UT) $(LLIBTK2SL) $(DYNAMIC_OFF_TK2)

PLSPECFILES=

LIBOCIC= $(LIBHOME)/libocic.a
LLIBOCIC= -locic

TTLIBD= $(NETLIBD) $(LIBORA) $(CORELIBD)

STLIBDNOPLS= $(OSNTABST) $(CONFIG) $(CORELIBD) $(NETLIBD) $(RDBMSLIBDNOPLS)
STLIBD= $(OSNTABST) $(CONFIG) $(CORELIBD) $(NETLIBD) $(RDBMSLIBD)
STLIBSNOPLS= $(OSNTABST) $(CONFIG) $(RDBMSLIBSNOPLS) $(RDBMSLIBSNOPLS) $(PLSPECFILES) $(SQLNETLIBS) $(LLIBORA) $(CORELIBS) $(LLIBPSO) $(LDLIBS) $(CLIBS)
STLIBS= $(OSNTABST) $(CONFIG) $(RDBMSLIBS) $(RDBMSLIBS) $(PLSPECFILES) $(SQLNETLIBS) $(LLIBORA) $(CORELIBS) $(LLIBPSO) $(LDLIBS) $(CLIBS)

LLIBNETV2= -lnetv2
LLIBNETWORK= -lnetwork

CONFIG= $(LIBHOME)/config.o
OPIMAI= $(LIBHOME)/opimai.o
LIBORA= $(LIBHOME)/libora.a
LIBKNL= $(LIBHOME)/libknl.a
LIBKNLOPT= $(LIBHOME)/libknlopt.a
LLIBORA= -lora
LLIBKNL= -lknl
LLIBKNLOPT= -lknlopt

RDBMSLIBDNOPLS= $(LIBORA) $(LIBKNLOPT) $(LIBKNL)
RDBMSLIBD= $(LIBORA) $(LIBKNLOPT) $(LIBPLS) $(LIBKNL)
RDBMSLIBSNOPLS= $(LLIBORA) $(LLIBKNLOPT) $(LLIBKNL)
RDBMSLIBS= $(LLIBORA) $(LLIBKNLOPT) $(LLIBPLS) $(LLIBKNL)

LIBSOSD=
LLIBSOSD=

LIBPCORE=$(LIBHOME)/libpcore.a
LLIBPCORE= -lpcore

LIBCGEN= $(LIBHOME)/pdc.o
LIBFORGEN= $(LIBHOME)/pdf.o
LIBCOBGEN= $(LIBHOME)/pdb.o
LIBPASGEN= $(LIBHOME)/pdp.o
LIBADAGEN= $(LIBHOME)/pda.o
LIBOSDGEN= $(LIBHOME)/pds.o

CODEGENHOME= $(SRCHOME)/codegen

LIBSLAX=$(LIBHOME)/pxslax.o

SLAX=/usr/local/slax/newsx

.y.c:
$(SLAX) -p -d -v $*.y

SQLHOME= $(ORACLE_HOME)/sqllib

SQLPUBLIC=$(I_SYM)$(SQLHOME)/public
LIBSQL= $(LIBHOME)/libsql.a

LIBPROC20=$(LIBHOME)/libproc.a
LLIBPROC20= -lproc
LIBPRO= $(LIBPROC20)
LLIBPRO= $(LLIBPROC20)

PROC=$(ORACLE_HOME)/bin/proc

#
# Redefining CC and OTHERLIBS - problem with LDSTRING and MTS / JATIN/HARISH
#
CC= ld -dy $(COMPOBJS) $(LDSTRING)
OTHERLIBS=`cat $(ORACLE_HOME)/lib/sysliblist` $(MLSLIBS)

CFLAGS=

PROCOBJS=$(ORACLE_HOME)/proc/lib/main.o \
$(ORACLE_HOME)/proc/lib/pcdsfv.o \
$(ORACLE_HOME)/proc/lib/pcdlut.o
PROCPLSFLAGS= SQLCHECK=SEMANTICS userid=username/password

all: build

# Rule to compile any program (specify EXE= and OBJS= on command line)
build: $(OBJS)
$(RCC) $(LDFLAGS) -o $(EXE) $(OBJS) $(PROLDLIBS)


# Suffix rules
.SUFFIXES: .exe .o .c .pc

.pc.c:
$(PROC) $(PROFLAGS) iname=$*.pc

.pc.o:
$(PROC) $(PROFLAGS) iname=$*.pc
$(RCC) $(CFLAGS) $(SQLPUBLIC) -Wall -c $*.c

.c.o:
$(RCC) $(CFLAGS) $(SQLPUBLIC) -Wall -c $*.c

LIBDIR= $(ORACLE_HOME)/proc/lib
DEMODIR= $(ORACLE_HOME)/proc/demo

install_files:
-rm -f $(DEMODIR)/proc.mk
-ln $(LIBDIR)/proc.mk $(DEMODIR)/proc.mk

# Rules to relink the proc executable
install: clean proc
-chmod 755 $(ORACLE_HOME)/bin/proc
-mv proc $(ORACLE_HOME)/bin/proc
-chmod 755 $(ORACLE_HOME)/bin/proc

clean:
-rm -f proc

proc:
@$(ECHO) $(CC) $(LDFLAGS) -o proc $(PROCOBJS) \
$(LLIBPROC20) $(LIBCGEN) $(LLIBPLS) $(LIBOSDGEN) $(LIBSLAX) \
$(LLIBPCORE) $(LLIBPLS) $(LLIBORA) $(LLIBPLS) $(TTLIBS) -lm
Re: sqlcxt [message #224934 is a reply to message #171592] Fri, 16 March 2007 00:47 Go to previous message
patil.vaibhav
Messages: 1
Registered: March 2007
Junior Member
Hello ..

The file that contains sqlcxt is libclntsh.a, which is located under $(ORACLE_HOME)/lib32(probably for 32 bit mode) and under $(ORACLE_HOME)/lib(probably for 64 bit mode).

Try including that file explicitly in the .mk file. This may solve the problem.

In my case, the .pc file was compiling fine. But when i was trying to link it with another .c file, it was giving error "Undefined Symbol: .sqlcxt". It was finally resolved by explicitly adding an entry for the file $(ORACLE_HOME)/lib32/libclntsh.a in my .mk file for the .c file. Razz
Previous Topic: Dynamic Sql with cursor?
Next Topic: Form_success
Goto Forum:
  


Current Time: Thu Mar 28 07:58:16 CDT 2024