IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Interfaces de programmation Oracle Discussion :

[OCILIB] Problème de compilation avec code::blocks


Sujet :

Interfaces de programmation Oracle

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    AMOE
    Inscrit en
    Juin 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : AMOE

    Informations forums :
    Inscription : Juin 2008
    Messages : 58
    Points : 36
    Points
    36
    Par défaut [OCILIB] Problème de compilation avec code::blocks
    Bonjour,

    je cherche à me connecter à une base oracle 9 distante à partir de mon poste (Windows XP). J'ai récupérer ocilib-3.11.1-windows.zip et le code minimaliste afin de m'exercer suivant

    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #include "ocilib.h"
     
    int main()
    {
        if (!OCI_Initialize(NULL, NULL, OCI_ENV_DEFAULT))
            return EXIT_FAILURE;
     
        /* ... application code here ... */
     
        OCI_Cleanup();
     
     
        return EXIT_SUCCESS;
    }

    Je compile avec code::blocks 12.11 et j'obtiens le résultat ci-dessous

    -------------- Clean: Debug in essai (compiler: GNU GCC Compiler)---------------

    Cleaned "essai - Debug"

    -------------- Build: Debug in essai (compiler: GNU GCC Compiler)---------------

    mingw32-gcc.exe -Wall -g -IC:\MinGW\ocilib\include -c C:\MinGW\msys\1.0\home\X2006570\essai\main.c -o obj\Debug\main.o
    mingw32-g++.exe -LC:\MinGW\ocilib\lib32 -o bin\Debug\essai.exe obj\Debug\main.o -lociliba
    obj\Debug\main.o: In function `main':
    C:/MinGW/msys/1.0/home/X2006570/essai/main.c:5: undefined reference to `OCI_Initialize'
    C:/MinGW/msys/1.0/home/X2006570/essai/main.c:10: undefined reference to `OCI_Cleanup'
    collect2: ld a retourné 1 code d'état d'exécution
    Process terminated with status 1 (0 minutes, 0 seconds)
    2 errors, 0 warnings (0 minutes, 0 seconds)

    J'ai lu un certains nombre de post sur le forum, essayer en 32 et 64 bits...

    Je comprends pas ou se situe mon erreur. Pouvez-vous m'indiquer quelques pistes ?

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    AMOE
    Inscrit en
    Juin 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : AMOE

    Informations forums :
    Inscription : Juin 2008
    Messages : 58
    Points : 36
    Points
    36
    Par défaut
    En cherchant un peu mieux, je suis arrivé sur la présentaion de Vincent Rogier (http://vicenzo.developpez.com/tutoriels/c/ocilib/) et la solution était évidemment dans son tutoriel :

    Sous Windows, pour utiliser OCILIB en ANSI, en utilisant les Dlls fournies, il suffit de créer un nouveau projet et :

    •Inclure "ocilib.h"
    •Définir OCI_API=__sdtcall dans les options du préprocesseur du projet
    •Si toutes les variantes ocilib[x].lib sont disponibles pour le linker, il faut alors préciser quel version en insérant #pragma comment(lib, "ocilib[x].lib") dans un des fichiers du projet


    J'ai donc modifié mon makefile (et paramétrage de compilation sur code::blocks)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    main.exe : main.o
    	gcc -L"C:\Program Files\CodeBlocks\MinGW\lib"  -o main.exe main.o -static -lociliba
    
    main.o : main.c
    	gcc -DOCI_API=__stdcall -I"C:\Program Files\CodeBlocks\MinGW\include\ocilib" -c main.c -o main.o
    
    clean:
    	rm -f main
    	rm -f *.o
    La compilation s'est éxécute avec succès.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    AMOE
    Inscrit en
    Juin 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : AMOE

    Informations forums :
    Inscription : Juin 2008
    Messages : 58
    Points : 36
    Points
    36
    Par défaut
    ERRATUM

    ne pas prendre en compte l'option "-static" du makefile qui provient d'un autre essai de compilation

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SDL 1.2] problème de compilation avec Code:Block
    Par RiNoXuS dans le forum SDL
    Réponses: 3
    Dernier message: 08/05/2015, 16h02
  2. Problème de compilation avec Code Block
    Par med19972004 dans le forum Code::Blocks
    Réponses: 2
    Dernier message: 16/09/2011, 16h32
  3. Problème de compilation avec Code::Blocks
    Par xvid110 dans le forum OpenCV
    Réponses: 12
    Dernier message: 13/06/2011, 23h12
  4. Problème de compilation avec Code Block
    Par med19972004 dans le forum C++
    Réponses: 5
    Dernier message: 04/02/2011, 23h49
  5. [kjAPI] Compilation avec Code::Blocks
    Par ThomasCh dans le forum Moteurs 3D
    Réponses: 5
    Dernier message: 17/10/2006, 09h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo