Hi Marek,

Simply don't use paths/extension/lib prefix in -l option
and pass your lib directory with -L option. You're also
mixing non-MinGW and MinGW libs.

C:\oci\ocilib\demo>hbmk2 abort.c -incpath=C:/oci/ocilib/include
-LC:/oci/ocilib/lib32 -lociliba -locilibw -locilibm -trace

Brgds,
Viktor

On Mon, Jun 15, 2009 at 5:19 PM, Horodyski Marek
(PZUZ)<m.horody...@pzuzycie.com.pl> wrote:
> Viktor, from :
> http://orclib.sourceforge.net/download/
>
> I have download example to acces via oci to oracle in C.
> I copy and unzipped it in OCI folder.
> Then to test I try compile: C:\oci\ocilib\demo\abort.c :
>
> *--------
> #include "windows.h"
> #include "process.h"
> #include "ocilib.h"
> /* Example on Microsoft platform */
> static HANDLE evt;
> void long_oracle_call(void *data)
> {
>    OCI_Statement *st  = OCI_CreateStatement((OCI_Connection *) data);
>    OCI_Resultset *rs;
>    /* execute a query that takes a long time to process */
>    OCI_ExecuteStmt(st, "select code, content from huge_table");
>    rs = OCI_GetResultset(st);
>    while (OCI_FetchNext(rs))
>    {
>        printf("%i - %s", OCI_GetInt(rs, 1), OCI_GetString(rs, 2));
>    }
>    SetEvent(evt);
> }
> int main(void)
> {
>   OCI_Connection *cn;
>
>   if (!OCI_Initialize(NULL, NULL, OCI_ENV_DEFAULT))
>        return EXIT_FAILURE;
>    cn = OCI_ConnectionCreate("db", "usr", "pwd", OCI_SESSION_DEFAULT);
>    evt = CreateEvent(0, TRUE, FALSE, 0);
>    _beginthread(long_oracle_call, 0, cn);
>    if (WaitForSingleObject(evt, 10000) != WAIT_OBJECT_0)
>    {
>        OCI_Break(cn);
>        Sleep(2000);
>    }
>    OCI_Cleanup();
>    return EXIT_SUCCESS;
> }
> *--------
>
> My directing :
> C:\oci\ocilib\demo>hbmk2 abort.c -incpath=C:/oci/ocilib/include
> -lC:/oci/ocilib/lib32/ociliba.lib -lC:/oci/ocilib/lib32/ocilibm.lib
> -lC:/oci/ocilib/lib32/ocilibw.lib -lC:/oci/ocilib/lib32/libociliba.a
> -C:/oci/ocilib/lib32/libocilibm.a -lC:\oci\ocilib\lib32\libocilibw.a
> -trace
>
> But MingGW is write :
> --------------------------------
>
> hbmk: Processing configuration: C:\harbour\bin\hbmk.cfg
>
> hbmk: C compiler command:
>
> gcc.exe -c -O3 -march=i586 -mtune=pentiumpro -fomit-frame-pointer
> -I"C:/harbour/include" -I"C:/oci/ocilib/include" abort.c
> hbmk: Linker command:
>
> gcc.exe abort.o    -mconsole -Wl,--start-group
> C:/oci/ocilib/lib32/ociliba.lib C:/oci/ocilib/lib32/ocilibm.lib
> C:/oci/ocilib/
> lib32/ocilibw.lib C:/oci/ocilib/lib32/libociliba.a
> C:/oci/ocilib/lib32/libocilibm.a C:/oci/ocilib/lib32/libocilibw.a
> -lhbcpag
> e -lhblang -lhbcommon -lhbcplr -lhbdebug -lhbvm -lhbrdd -lhbusrrdd
> -lhbhsx -lhbsix -lrddntx -lrddcdx -lrddfpt -lhbuddall -lrd
> dnsx -lhbrtl -lhbpp -lhbmacro -lhbextern -lgtcgi -lgtpca -lgtstd -lgtwin
> -lgtwvt -lgtgui -lhbpcre -lhbzlib -lkernel32 -luser3
> 2 -lgdi32 -ladvapi32 -lws2_32 -lwinspool -lcomctl32 -lcomdlg32 -lshell32
> -lole32 -loleaut32 -luuid -lmpr -lwinmm -lmapi32 -li
> mm32 -lmsimg32 -Wl,--end-group -oabort.exe -LC:/harbour/lib/win/mingw
> -LC:/harbour/lib
> abort.o:abort.c:(.text+0x2b): undefined reference to `OCI_Initialize'
>
> abort.o:abort.c:(.text+0x64): undefined reference to
> `OCI_ConnectionCreate'
> abort.o:abort.c:(.text+0xc7): undefined reference to `OCI_Cleanup'
>
> abort.o:abort.c:(.text+0xe4): undefined reference to `OCI_Break'
>
> abort.o:abort.c:(.text+0x10d): undefined reference to
> `OCI_StatementCreate'
> abort.o:abort.c:(.text+0x120): undefined reference to `OCI_ExecuteStmt'
>
> abort.o:abort.c:(.text+0x128): undefined reference to `OCI_GetResultset'
>
> abort.o:abort.c:(.text+0x13d): undefined reference to `OCI_GetString'
>
> abort.o:abort.c:(.text+0x150): undefined reference to `OCI_GetInt'
>
> abort.o:abort.c:(.text+0x16c): undefined reference to `OCI_FetchNext'
>
> collect2: ld returned 1 exit status
>
> hbmk: Error: Running linker. 1
>
> gcc.exe abort.o    -mconsole -Wl,--start-group
> C:/oci/ocilib/lib32/ociliba.lib C:/oci/ocilib/lib32/ocilibm.lib
> C:/oci/ocilib/
> lib32/ocilibw.lib C:/oci/ocilib/lib32/libociliba.a
> C:/oci/ocilib/lib32/libocilibm.a C:/oci/ocilib/lib32/libocilibw.a
> -lhbcpag
> e -lhblang -lhbcommon -lhbcplr -lhbdebug -lhbvm -lhbrdd -lhbusrrdd
> -lhbhsx -lhbsix -lrddntx -lrddcdx -lrddfpt -lhbuddall -lrd
> dnsx -lhbrtl -lhbpp -lhbmacro -lhbextern -lgtcgi -lgtpca -lgtstd -lgtwin
> -lgtwvt -lgtgui -lhbpcre -lhbzlib -lkernel32 -luser3
> 2 -lgdi32 -ladvapi32 -lws2_32 -lwinspool -lcomctl32 -lcomdlg32 -lshell32
> -lole32 -loleaut32 -luuid -lmpr -lwinmm -lmapi32 -li
> mm32 -lmsimg32 -Wl,--end-group -oabort.exe -LC:/harbour/lib/win/mingw
> -LC:/harbour/lib
>
> My ask is - can we use hbmk2 to link and compile pure c code ?
>
> Regards,
> Marek Horodyski
> _______________________________________________
> Harbour mailing list
> Harbour@harbour-project.org
> http://lists.harbour-project.org/mailman/listinfo/harbour
>
_______________________________________________
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to