Problemas para conectar con BD Oracle usando Ocilib
Publicado por pabusa (1 intervención) el 10/05/2019 23:26:50
Estoy intentando usar "ocilib" para conectar a una base de datos Oracle. Pero no hay manera de compilar y hacer que funcione.
El código que utilizo es:
En las opciones el compilador, pestaña de Directorios, reviso todos los paths y agrego en ellos:
- las correspondiente .lib (en las rutas de lib según los directorios)
- la ocilib.h .lhpp _core.hpp impl.hpp (los 4 archivos que vienen en las correspondientes rutas de includes)
Si compilo del tirón me aparece:
undefined reference to `OCI_Initialize'
undefined reference to `OCI_ConnectionCreate'
undefined reference to `OCI_GetServerMajorVersion'
....
[Error] ld returned 1 exit status
En teoría es porque tengo que añadir el parámetro -locilib a la hora de compilar así que me voy a:
- Herramientas - Opciones del Compilador - Pestaña Compilador …. y aquí puedo agregar el parámetro "-ocilib":
a - en la zona superior (al llamar al compilar)-> y obtengo "cannot find -locilib"
b - en la zona inferior (a la línea de comandos del linker) -> y obtengo "[Error] unrecognized command line option '-static-libgcc-locilib'"
en resumen... que no hay manera...
¿Alguien que pueda iluminarme?
Gracias!!
**************
El origen de todo esto es que me gustaría hacer una pequeña app que "intentara" conectarse al servidor, y solo en el caso de que lo lograra, tirara un par de comandos.
Soy novato con c /c++.
A ver si podéis ayudarme.
Saludos!!
El código que utilizo es:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "ocilib.h"
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);
printf("Server major version : %i\n", OCI_GetServerMajorVersion(cn));
printf("Server minor version : %i\n", OCI_GetServerMinorVersion(cn));
printf("Server revision version : %i\n\n", OCI_GetServerRevisionVersion(cn));
printf("Connection version : %i\n\n", OCI_GetVersionConnection(cn));
OCI_Cleanup();
return EXIT_SUCCESS;
}
En las opciones el compilador, pestaña de Directorios, reviso todos los paths y agrego en ellos:
- las correspondiente .lib (en las rutas de lib según los directorios)
- la ocilib.h .lhpp _core.hpp impl.hpp (los 4 archivos que vienen en las correspondientes rutas de includes)
Si compilo del tirón me aparece:
undefined reference to `OCI_Initialize'
undefined reference to `OCI_ConnectionCreate'
undefined reference to `OCI_GetServerMajorVersion'
....
[Error] ld returned 1 exit status
En teoría es porque tengo que añadir el parámetro -locilib a la hora de compilar así que me voy a:
- Herramientas - Opciones del Compilador - Pestaña Compilador …. y aquí puedo agregar el parámetro "-ocilib":
a - en la zona superior (al llamar al compilar)-> y obtengo "cannot find -locilib"
b - en la zona inferior (a la línea de comandos del linker) -> y obtengo "[Error] unrecognized command line option '-static-libgcc-locilib'"
en resumen... que no hay manera...
¿Alguien que pueda iluminarme?
Gracias!!
**************
El origen de todo esto es que me gustaría hacer una pequeña app que "intentara" conectarse al servidor, y solo en el caso de que lo lograra, tirara un par de comandos.
Soy novato con c /c++.
A ver si podéis ayudarme.
Saludos!!
Valora esta pregunta
0