Hi,
I am working on C project using ocilib in eclipse. Below are the make file and the code segment.
!include <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