Hi,
I am trying to find reasonable solution for problem with compilation of program using pro*C.
When I am trying to compile program I am receiving following error:
gcc -lstdc++ -L/geneva_prog/DV1/dev/arc
hive -L/oracle/product/home0/rd
bms/lib -L/usr/lib -L./ -L/oracle/product/home0/sq
lplus/lib -L/oracle/product/home0/ct
x/lib -L/oracle/product/home0/ne
twork/lib -L/oracle/product/home0/li
b -lclntsh -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE gnvprgrun.o /geneva_prog/DV1/dev/archi
ve/gnvlogi
n.a /geneva_prog/DV1/dev/archi
ve/logs.a -o gnvprgrun
ld: 0711-317 ERROR: Undefined symbol: .sqlcxt
ld: 0711-317 ERROR: Undefined symbol: .sqlglm
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
collect2: ld returned 8 exit status
make: The error code from the last command is 1.
Stop.
Compilation is performed under IBM AIX OS.
Environment variabled are set as follow:
SHLIB_PATH=/oracle/product
/home0/lib
:/oracle/p
roduct/hom
e0/lib32:/
lib:/usr/l
ib:/usr/lo
cal/lib
LIBPATH=/oracle/product/ho
me0/lib:/o
racle/prod
uct/home0/
lib32:/lib
:/usr/lib:
/usr/local
/lib
LD_LIBRARY_PATH=/oracle/pr
oduct/home
0/lib:/lib
:/usr/lib:
/usr/local
/lib
For compilation I have used following makefile:
PROC = proc
PROCFLAGS = include=$(GENEVA_HOME)/dev
/include select_error=yes ltype=none def_sqlcode=yes mode=ansi code=ansi_c parse=partial
lines=no sqlcheck=semantics select_error=no userid=geneva_admin/geneva
_admin code=ansi_c
CC = gcc
CCFLAGS = -I$(GENEVA_HOME)/dev/inclu
de -I/usr/include -I$(ORACLE_HOME)/rdbms/dem
o -I$(ORACLE_HOME)/rdbms/pub
lic -I$(ORACLE_HOM
E)/precomp/public/ -I$(ORACLE_HOME)/network/p
ublic -g -DUSE_HEAP_STATS
CXX = gcc
CXXFLAGS = -lstdc++ -L${GENEVA_HOME}/dev/archi
ve -L$(ORACLE_HOME)/rdbms/lib
-L/usr/lib -L./ -L$(ORACLE_HOME)/sqlplus/l
ib -L$(ORACLE_HOME)/ctx/lib -L$(ORACLE_HOME)/network/l
ib -L$(ORACLE_HOME)/lib -lclntsh -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
PCSRC = gnvprgrun.pc
SRC = $(PCSRC:.pc=.c)
OBJ = $(SRC:%.c=%.o)
LIB = $(GENEVA_HOME)/dev/archive
/gnvlogin.
a $(GENEVA_HOME)/dev/archive
/logs.a
EXE = gnvprgrun
all: $(EXE)
clean:
rm -f $(SRC) $(OBJ) $(EXE)
$(SRC) : $(PCSRC)
$(PROC) $(PROCFLAGS) iname=$(PCSRC)
$(OBJ) : $(SRC)
$(CC) $(CCFLAGS) $(SRC) -c
$(EXE) : $(OBJ)
$(CXX) $(CXXFLAGS) $(OBJ) $(LIB) -o $(EXE)
Could be someone so kind and help me with this problem as I am not skilled in C/C++ compilation under unix IMB AIX environment.
Thank you
FOLVO