Hi,
I am working on C project using ocilib in eclipse. Below are the make file and the code segment.
!include <win32.mak></win32.mak>
CFG=utilities TC-8
ITKDIR=D:/manoj/UA/worksppace/test5/itkenv
TC_ROOT=$(TC_ROOT)
TC_USER_DIR=$(TC_ROOT)\Local
TC_CUSTOM_LIB_NAME=trn.dll
TC_CUSTOM_BAK_LIB_NAME=trn.bakdll
TC_CUSTOM_LIBRARY=trn.lib
CUST_FUNC_LIB_NAME=trncustom_functions
USER_LIBS=D:/ocilib-3.12.1-windows/ocilib
DEFINES = -DNT40 -DPOMDLL -DCRTAPI1=_cdecl \
-DCRTAPI2=cdecl -D_WIN32 -DWIN32 -DWIN32_LEAN_AND_MEAN \
-DWNT -DBYPASS_FLEX -D_INTEL=1 -DIPLIB=none\
-DOCI_IMPORT_LINKAGE -DOCI_CHARSET_ANSI
MISCFLAGS=-c -nologo -EHsc -W1 -Ox -Oy- -Z7 -MD -wd4996
CFLAGS=$(DEFINES) $(MISCFLAGS)
DLLFLAGS = -debug -nologo -machine:IX86 -subsystem:console
SYSLIBS = wsock32.lib advapi32.lib msvcrt.lib oldnames.lib kernel32.lib winmm.lib
XMLLIBS = xerces270.lib
LINKCMD = $(DLLFLAGS) $(SYSLIBS) $(XMLLIBS) \
itk_main.obj \
libsyss.lib \
libpom.lib \
libtcsso.lib \
libae.lib \
libappr.lib \
libarchive.lib \
libbackup.lib \
libbom.lib \
libcfm.lib \
libconstants.lib \
libcxpom.lib \
libdmi.lib \
libecm.lib \
libeint.lib \
libepm.lib \
libfclasses.lib \
libform.lib \
libgms.lib \
libgrm.lib \
libtcinit.lib \
libtc.lib \
libtccore.lib \
libtctrushape.lib \
libinternal_exits.lib \
libitk.lib \
libvalidation.lib \
liblov.lib \
libme.lib \
libmgc.lib \
libobjio.lib \
libpie.lib \
libproperty.lib \
libps.lib \
libpublication.lib \
libqry.lib \
libclips.lib \
libclipsutil.lib \
librbf.lib \
libce.lib \
libres.lib \
libsa.lib \
libss.lib \
libstep.lib \
libsub_mgr.lib \
libtextsrv.lib \
libtie.lib \
libnxmgr_im.lib \
libaie.lib \
libics.lib \
libeintstub.lib \
libsml.lib \
libuser_exits.lib \
librdv.lib \
libcollabctx.lib \
libmechatronics.lib \
libtccoreext.lib \
libusagewc.lib \
libusage.lib \
libcontmgmt.lib \
libcontmgmtbase.lib \
libcontmgmtbasedispatch.lib \
libtc_utils.lib \
libschmgt.lib \
libschmgt_bridge.lib \
libdocmgt.lib \
libdocmgtapp.lib \
libvm.lib \
libadsfoundationdispatch.lib \
libcm.lib \
libcmdispatch.lib \
libconstants.lib \
libbase_utils.lib \
libfunctionality.lib \
libmfg.lib \
libmfgbvr.lib \
libtcserverutil.lib \
libcondvalidation.lib\
ociliba.lib\
ALL : All_message COMPILE COPYOBJ DELOBJ LINK
All_message :
@echo BUILDING ITK Project directory $(ITKDIR)\utilities for TC-8.
COMPILE :
cl.exe $(CFLAGS) "$(ITKDIR)\utilities\AAM_Engg_Permit_Expiration.c"
COPYOBJ :
-@copy "$(ITKDIR)"\utilities\AAM_Engg_Permit_Expiration.obj "$(ITKDIR)"\utilities\lib
DELOBJ :
-@erase "$(ITKDIR)"\utilities\AAM_Engg_Permit_Expiration.obj
LINK :
link.exe $(LINKCMD) "$(ITKDIR)\utilities\lib\AAM_Engg_Permit_Expiration.obj" -out:"$(ITKDIR)\bin\AAM_Engg_Permit_Expiration.exe"
Code Segment:
static int dbConnection()
{
OCI_Connection cn;
if (!OCI_Initialize(NULL, NULL, OCI_ENV_DEFAULT))
return EXIT_FAILURE;
cn = OCI_ConnectionCreate("db", "usr", "pwd", OCI_SESSION_DEFAULT);
if (cn != NULL)
{
printf(OCI_GetVersionServer(cn));
printf("Server major version : %i\n", OCI_GetServerMajorVersion(cn));
printf("Server minor version : %i\n", OCI_GetServerMinorVersion(cn));
printf("Server revision version : %i\n", OCI_GetServerRevisionVersion(cn));
printf("Connection version : %i\n", OCI_GetVersionConnection(cn));
/ ... application code here ... */
OCI_ConnectionFree(cn);
}
OCI_Cleanup();
return EXIT_SUCCESS;
}
I am getting the error below after compiling:
* Build of configuration Default for project itkenv *
C:\Program Files (x86)\Microsoft Visual Studio 8\VC\bin\nmake.exe all
Microsoft (R) Program Maintenance Utility Version 8.00.50727.42
Copyright (C) Microsoft Corporation. All rights reserved.
BUILDING ITK Project directory D:/manoj/UA/worksppace/test5/itkenv\utilities for TC-8.
cl.exe -DNT40 -DPOMDLL -DCRTAPI1=_cdecl -DCRTAPI2=cdecl -D_WIN32 -DWIN32 -DWIN32_LEAN_AND_MEAN -DWNT -DBYPASS_FLEX -D_INTEL=1 -DIPLIB=none -DOCI_IMPORT_LINKAGE -DOCI_CHARSET_ANSI -c -nologo -EHsc -W1 -Ox -Oy- -Z7 -MD -wd4996 "D:/manoj/UA/worksppace/test5/itkenv\utilities\AAM_Engg_Permit_Expiration.c"
AAM_Engg_Permit_Expiration.c
D:/manoj/UA/worksppace/test5/itkenv\utilities\AAM_Engg_Permit_Expiration.c(373) : warning C4047: 'function' : 'char ' differs in levels of indirection from 'char [21]'
D:/manoj/UA/worksppace/test5/itkenv\utilities\AAM_Engg_Permit_Expiration.c(373) : warning C4024: 'get_current_date_and_time' : different types for formal and actual parameter 1
D:/manoj/UA/worksppace/test5/itkenv\utilities\AAM_Engg_Permit_Expiration.c(376) : warning C4047: 'function' : 'char ' differs in levels of indirection from 'char [21]'
D:/manoj/UA/worksppace/test5/itkenv\utilities\AAM_Engg_Permit_Expiration.c(376) : warning C4024: 'split_string' : different types for formal and actual parameter 1
1 file(s) copied.
link.exe -debug -nologo -machine:IX86 -subsystem:console wsock32.lib advapi32.lib msvcrt.lib oldnames.lib kernel32.lib winmm.lib xerces270.lib itk_main.obj libsyss.lib libpom.lib libtcsso.lib libae.lib libappr.lib libarchive.lib libbackup.lib libbom.lib libcfm.lib libconstants.lib libcxpom.lib libdmi.lib libecm.lib libeint.lib libepm.lib libfclasses.lib libform.lib libgms.lib libgrm.lib libtcinit.lib libtc.lib libtccore.lib libtctrushape.lib libinternal_exits.lib libitk.lib libvalidation.lib liblov.lib libme.lib libmgc.lib libobjio.lib libpie.lib libproperty.lib libps.lib libpublication.lib libqry.lib libclips.lib libclipsutil.lib librbf.lib libce.lib libres.lib libsa.lib libss.lib libstep.lib libsub_mgr.lib libtextsrv.lib libtie.lib libnxmgr_im.lib libaie.lib libics.lib libeintstub.lib libsml.lib libuser_exits.lib librdv.lib libcollabctx.lib libmechatronics.lib libtccoreext.lib libusagewc.lib libusage.lib libcontmgmt.lib libcontmgmtbase.lib libcontmgmtbasedispatch.lib libtc_utils.lib libschmgt.lib libschmgt_bridge.lib libdocmgt.lib libdocmgtapp.lib libvm.lib libadsfoundationdispatch.lib libcm.lib libcmdispatch.lib libconstants.lib libbase_utils.lib libfunctionality.lib libmfg.lib libmfgbvr.lib libtcserverutil.lib libcondvalidation.lib ociliba.lib "D:/manoj/UA/worksppace/test5/itkenv\utilities\lib\AAM_Engg_Permit_Expiration.obj" -out:"D:/manoj/UA/worksppace/test5/itkenv\bin\AAM_Engg_Permit_Expiration.exe"
AAM_Engg_Permit_Expiration.obj : error LNK2019: unresolved external symbol _OCI_Cleanup@0 referenced in function _dbConnection
AAM_Engg_Permit_Expiration.obj : error LNK2019: unresolved external symbol _OCI_ConnectionFree@4 referenced in function _dbConnection
AAM_Engg_Permit_Expiration.obj : error LNK2019: unresolved external symbol _OCI_GetVersionConnection@4 referenced in function _dbConnection
AAM_Engg_Permit_Expiration.obj : error LNK2019: unresolved external symbol _OCI_GetServerRevisionVersion@4 referenced in function _dbConnection
AAM_Engg_Permit_Expiration.obj : error LNK2019: unresolved external symbol _OCI_GetServerMinorVersion@4 referenced in function _dbConnection
AAM_Engg_Permit_Expiration.obj : error LNK2019: unresolved external symbol _OCI_GetServerMajorVersion@4 referenced in function _dbConnection
AAM_Engg_Permit_Expiration.obj : error LNK2019: unresolved external symbol _OCI_GetVersionServer@4 referenced in function _dbConnection
AAM_Engg_Permit_Expiration.obj : error LNK2019: unresolved external symbol _OCI_ConnectionCreate@16 referenced in function _dbConnection
AAM_Engg_Permit_Expiration.obj : error LNK2019: unresolved external symbol _OCI_Initialize@12 referenced in function _dbConnection
D:/manoj/UA/worksppace/test5/itkenv\bin\AAM_Engg_Permit_Expiration.exe : fatal error LNK1120: 9 unresolved externals
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 8\VC\BIN\link.exe"' : return code '0x460'
Stop.
Can you please help me to resolve this issue?
Many thanks,
Swapnil Naik
Anonymous
Hi,
On MS platforms, you need to define OCI_API=__stdcall
Regards,
Vincent
Hello Rogier,
Please, let me know where to define OCI_API. I tried everything. I am still getting the same error.
Thanks,
Swapnil