Hi All,
I am working on HP-UX 9000/800 platform.
I am trying to compile the demo source code provided with the Informix 14.10 client. (informixConnect_1410/demo/c++/)
I modified the make file in order to use
gcc and
c++ compilers rather than cc and aCC.
Unfortunately, any demo program ends with a linking error.
Is someone have an idea why the linker doesn't find the symbol embedded in
libifc++.a library?
Many thanks for any help by advance.
For instance:
> make tabcnt
> /gccinstall/gcc/local/bin/c++ -g -Wall -Wextra -pthread -O0 -isystem/gccinstall/gcc/local/include -ext -D__STDCPP__ -D_PROTOTYPES -DMITRACE_OFF -DIT_HAS_DISTINCT_LONG_DOUBLE -DIT_COMPILER_HAS_LONG_LONG -I/informixConnect_1410/inc -I/informixConnect_1410/incl/public -I/informixConnect_1410/incl/c++ -I/informixConnect_1410/incl/dmi -I/informixConnect_1410/incl/esql -c tabcnt.cpp
> /gccinstall/local/bin/c++ -o tabcnt tabcnt.o -L/informixConnect_1410/lib/c++ -lifc++ -L/informixConnect_1410/lib/dmi -lifdmi -L/informixConnect_1410/lib/esql -L/informixConnect_1410/lib -lifsql -lifasf -lifgen -lifos -lifgls -lifglx /informixConnect_1410/lib/esql/checkapi.o -lm -lV3 -lcl -lsec -lnsl_s -lc -ldld
/usr/ccs/bin/ld: Unsatisfied symbols:
ITQuery::ExecOneRow(ITString const&, ITEssential**)(first referenced in tabcnt.o) (code)
ITQuery::~ITQuery()(first referenced in tabcnt.o) (code)
ITConnection::~ITConnection()(first referenced in tabcnt.o) (code)
ITQuery::ITQuery(ITConnection const&)(first referenced in tabcnt.o) (code)
ITConnection::Open() (first referenced in tabcnt.o) (code)
ITString::~ITString()(first referenced in tabcnt.o) (code)
ITConnection::ITConnection()(first referenced in tabcnt.o) (code)
ITString::ITString(char const*)(first referenced in tabcnt.o) (code)
collect2: ld returned 1 exit status
*** Error exit code 1
My makefile is now like this:
#Makefile related...
CPPIFDIR = $(INFORMIXDIR)
RANLIB = echo
RM = rm -f
#Compiler and linker related...
GCC_DIR=${GCC_HOME}
CC = $(GCC_DIR)/bin/c++
CCHOME = $(GCC_DIR)
CCPP = $(GCC_DIR)/bin/c++
CCPLUS = $(CCPP) $(HEADEROPTS)
CCPPFLAGS = -g -Wall -Wextra -pthread -O0 -isystem$(GCC_DIR)/include -ext $(CCDEFS)
CCDEFS = -D__STDCPP__ -D_PROTOTYPES \
-DMITRACE_OFF -DIT_HAS_DISTINCT_LONG_DOUBLE \
-DIT_COMPILER_HAS_LONG_LONG
ESQL = $(INFORMIXDIR)/bin/esql
CCPLINK = $(CCPLUS)
#Includes...
INCL_ESQL = -I$(INFORMIXDIR)/incl/esql
INCL_LIBMI = -I$(INFORMIXDIR)/incl/dmi
INCL_CPPIF = -I$(INFORMIXDIR)/incl/c++
INCL = -I$(INFORMIXDIR)/incl -I$(INFORMIXDIR)/incl/public \
$(INCL_CPPIF) $(INCL_LIBMI) $(INCL_ESQL)
#Libraries...
LIBS_SYSTEM = -lm -lV3 -lcl -lsec -lnsl_s -lc -ldld
LIBS_ESQL = -L$(INFORMIXDIR)/lib/esql -L$(INFORMIXDIR)/lib -lifsql -lifasf -lifgen -lifos -lifgls -lifglx $(INFORMIXDIR)/lib/esql/checkapi.o
LIBS_LIBMI = -L$(INFORMIXDIR)/lib/dmi -lifdmi
LIBS_CPPIF = -L$(INFORMIXDIR)/lib/c++ -lifc++
LIBS = $(LIBS_CPPIF) $(LIBS_LIBMI) $(LIBS_ESQL) $(LIBS_SYSTEM)
------------------------------
Stephane GONZALEz
------------------------------
#Informix