[OCILIB] installation et utilisation OCILIB
Bonjour, j'ai tenter de suivre le tutoriel sur OCILIB réalisé par Vincent Rogier.
J' ai quelques soucis (vous devez vous en douter, sinon je ne posterai pas ici).
Je travaille :
- sous windows XP
- avec la dernière version d'eclipse cdt
- mon compilateur est cygwin
- la version OCILIB est 3.3.0
Mon but est de faire une simple requête SQL sur une database oracle (10g).
Mon arborescence est :
- ws (workspace eclipse)
- - test (projet c++ eclipse)
- - - dll (répertoire avec ociliba.dll)
- - - lib (répertoire avec ociliba.lib)
- - - src (contenant test.cpp et ocilib.h)
pour :
- ociliba.lib : project > properties > C/C++ Build > Settings > Cygwin C++ linker > Library search path (-L) = ${workspace_loc:/test/lib}
- ociliba.dll : j'édite mon PATH windows : C:\...\ws\test\dll\ociliba.dll;
- test.cpp :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| #include <iostream>
using namespace std;
#include "ocilib.h"
int main()
{
if (!OCI_Initialize(NULL, NULL, OCI_ENV_DEFAULT))
return EXIT_FAILURE;
/* ... application code here ... */
OCI_Cleanup();
return EXIT_SUCCESS;
} |
-----------------------------------------------------------------------
Pour le préprocesseur et la modifiaction de OCI_API=__sdtcall je vais dans :
project > properties > C/C++ Build > Settings > Cygwin C++ > Preprocessor : seulement je n'obtient que des erreurs quand j'essaye de mettre OCI_API=__sdtcall.
1
------------------------------------------------------------------------
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| **** Build of configuration Debug for project test ****
make all
Building file: ../src/test.cpp
Invoking: Cygwin C++ Compiler
g++ -E -DOCI_API=__sdtcall -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/test.d" -MT"src/test.d" -o"src/test.o" "../src/test.cpp"
Finished building: ../src/test.cpp
Building target: test.exe
Invoking: Cygwin C++ Linker
g++ -L"C:\0 - home\ws\test\lib" -o"test.exe" ./src/test.o
./src/test.o: file not recognized: File format not recognized
collect2: ld returned 1 exit status
make: *** [test.exe] Error 1 |
----------------------------------------------------------------------
2 - quand j'enlève le -E j'obtiens un nombre impressionnant d'erreurs.
3 - quand je ne mets rien dans le préprocessor j'obtients :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| **** Build of configuration Debug for project test ****
make all
Building file: ../src/test.cpp
Invoking: Cygwin C++ Compiler
g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/test.d" -MT"src/test.d" -o"src/test.o" "../src/test.cpp"
Finished building: ../src/test.cpp
Building target: test.exe
Invoking: Cygwin C++ Linker
g++ -L"C:\0 - home\ws\test\lib" -o"test.exe" ./src/test.o
./src/test.o: In function `main':
/cygdrive/c/0 - home/ws/test/Debug/../src/test.cpp:15: undefined reference to `_OCI_Initialize'
/cygdrive/c/0 - home/ws/test/Debug/../src/test.cpp:20: undefined reference to `_OCI_Cleanup'
collect2: ld returned 1 exit status
make: *** [test.exe] Error 1 |
------------------------------------------------------------------------
Je sais qu'il manque certaines informations. Car je ne suis pas un grand spécialiste du C++ (je suis plutôt java ...). Mais pouvez vous m'aider. Car je ne savais pas qu'il était si difficile de faire une requête en C/C++, par rapport à java.
Je vous remercie d'avance pour vos futures réponses.