OCCI - błędy w plikach nagłówkowych?

0

Cześć.
Chcę się z programu w C++ połączyć z bazą Oracle 11g XE. Ściągnąłem pliki:
http://download.oracle.com/otn/linux/instantclient/11203/instantclient-basiclite-linux.x64-11.2.0.3.0.zip
http://download.oracle.com/otn/linux/instantclient/11203/instantclient-sdk-linux.x64-11.2.0.3.0.zip
do katalogu /home/j i rozpakowałem, co utworzyło katalog /home/j/instantclient_11_2.
Przy kompilacji programu dostaję błędy:

g++ -I../include -I/usr/include -I/usr/include/freetype2 -I/home/j/instantclient_11_2/sdk/include  -lglut -lGLU -lGL -L/usr/local/lib -lfreetype -L../linux -lftgl -locci -lclntsh -lnnz11 g.cpp
In file included from /home/j/instantclient_11_2/sdk/include/occiData.h:107,
                 from /home/j/instantclient_11_2/sdk/include/occi.h:43,
                 from g.cpp:15:
/home/j/instantclient_11_2/sdk/include/occiControl.h:986: error: expected identifier before ‘int’
/home/j/instantclient_11_2/sdk/include/occiControl.h:987: error: expected unqualified-id before ‘{’ token
/home/j/instantclient_11_2/sdk/include/occiControl.h:1257: error: expected identifier before ‘int’
/home/j/instantclient_11_2/sdk/include/occiControl.h:1258: error: expected unqualified-id before ‘{’ token
/home/j/instantclient_11_2/sdk/include/occiControl.h:1387: error: expected identifier before ‘int’
/home/j/instantclient_11_2/sdk/include/occiControl.h:1387: error: expected unqualified-id before ‘{’ token
make: *** [g.o] Error 1

Dziwne jest m.in. to, że plik occiControl.h nie ma w linii 986 ciągu 'int'. Nie wiem, co robić. Wygląda na to, że kompilator się myli, ale bardziej prawdopodobne jest, iż ja czegoś nie rozumiem.
Proszę o pomoc. Pytałem już o to na forum Oracle, ale długo nikt mi nic nie odpowiedział.

0

Udało się! W programie używam też OpenGL i mam linijkę:
#include <GL/glx.h>Jeśli linijka#include <occi.h>jest po tej z glx.h, to są wspomniane błędy. Po przeniesieniu occi.h przed glx.h błędów nie ma.
Czy to może jakiś błąd kompilatora?

0

Nie, to zapewne konflikt nazewnictwa ;] Obie biblioteki mają najwyraźniej klasy/struktury/define/typedef z taką sama nazwą a nie maja namespace i w efekcie takie kwiatki.

1 użytkowników online, w tym zalogowanych: 0, gości: 1