Programme en C avec BDD INGRES :error LNK2001

Fermé
Lya - 2 mai 2007 à 19:23
mamiemando Messages postés 33338 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 6 novembre 2024 - 3 mai 2007 à 14:36
Salut!
J'ai un programme en C et SQL qui va chercher des données dans la base de données INGRES. J'utilise Visual C++ ou Dev-C++.Le problème c'est quand je veux éxécuter mon programme j'ai pleins d'erreurs linker de ce type:
"st_delai.obj : error LNK2001: unresolved external symbol __imp__sqlca
st_delai.obj : error LNK2001: unresolved external symbol _IIpLQisInqSqlio
st_delai.obj : error LNK2001: unresolved external symbol _IIpsqDisconnect
st_delai.obj : error LNK2001: unresolved external symbol _IIpflush
st_delai.obj : error LNK2001: unresolved external symbol _IIpgetdomio
st_delai.obj : error LNK2001: unresolved external symbol _IIpnextget"

J'ai cru comprendre que c'était un problème de lien avec les librairies Ingres mais je sais pas comment les "intégrer". Si vous avez une solution ça m'aiderai beaucoup!!
Merci d'avance!
A voir également:

1 réponse

mamiemando Messages postés 33338 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 6 novembre 2024 7 802
3 mai 2007 à 14:36
Si c'est un erreur de linkage. Ca veut dire que tu arrives à compiler tous tes fichiers sources, mais au moment de les assembler ensemble pour générer l'exécutable, tu fais référence à des fonctions qui ne sont pas dans tes sources (comprendre des fonctions définies dans les headers des libraires que tu utilises)

Il faut donc préciser ou se trouve le binaire associé à la librairie.
Pour devcpp cf les options '-l' '-L' '-Wl,-R' de gcc :
http://www.astro.uni-bonn.de/~webstw/cm/gnu/gcc/gcc.1.html

-L ajouter un répertoire où trouver des .a (par exemple -L../stage/lib pour aller chercher un .a dans ../stage/lib)

-Wl,-R ajouter un répertoire où trouver un .so (par exemple -Wl,-R../stage/lib pour aller chercher un .so dans ../stage/lib)

-l prendre une librairie (par exemple -lpcre pour inclure libpcre)

A noter que la variable d'environnement LD_LIBRARY_PATH permet également de spécifier des répertoires où trouver des librairies.

Exemple :
(mando@aldur) (~/cpp/app_data_igp) $ ls ../stage/lib/
libtorque_mando.a  libtorque_mando.so

(mando@aldur) (~/cpp/app_data_igp) $ make
g++ -O2 -fPIC -W  -I../stage/include -I./src  -c src/main.cpp -o build/main.o
g++ -O2 -fPIC -W  -I../stage/include -I./src -time -L../stage/lib -Wl,-R../stage/lib  -o build/app_data_igp.exe ./build/main.o -ltorque_mando -lpcre
# collect2 0.07 0.02


Bonne chance
0