2015-08-18 1 views
-1

Я пытаюсь скомпилировать существующий C++ проект, но получаю эту ошибку:Невозможно открыть не включают файл: «occi.h»: Нет такого файла или каталога

fatal error C1083: Cannot open include file: 'occi.h': No such file or directory 

То, что я сделал это, я пошел по этой ссылке:

http://www.oracle.com/technetwork/topics/winsoft-085727.html 

и загружен первый (базовый) пакет.

Затем расстегнул папку и измененную переменную PATH, как это:

C:\Program Files\Atmel\sam-ba_2.12\drv\;C:\Program Files\Atmel\sam-ba_2.12;C:\Program Files\ATMEL Corporation\AT91-ISP v1.4\Library;C:\MSYS\1.0\bin;C:\MSYS\1.0\local\bin;C:\cygnus\cygwin-b20\H-i586-cygwin32\bin;D:\instantclient_12_1 

последний из которых путь к оракулу. Но я все еще получаю сообщение об ошибке, может кто-то может помочь?

PS Я заметил в моем проекте есть такие строки:

#include "occi.h" 

Может быть, это из-за этого?

+3

Вам нужно указать, где компилятор может найти этот файл include, используя опцию -I. Установка переменной «PATH» влияет только на то, где ваша система может находить исполняемые файлы или разделяемые библиотеки. –

+0

почему downvote? Я задал четкий вопрос и упомянул, что я пробовал –

ответ

2

Базового пакета недостаточно. В его описании говорится: «Все файлы, необходимые для , запускают OCI, OCCI и приложение JDBC-OCI» (выделено мной); с тем, что вы можете запустить программу OCI, но вы не можете ее скомпилировать. Вам необходимо загрузить другие компоненты клиентского ПО. Специально для заголовка occi.h вам нужен пятый файл в списке:

*Instant Client Package - SDK: Additional header files and an example makefile for developing Oracle applications with Instant Client

Если скачать и распаковать, что в одном месте вы распаковали базовый пакет, ваш мгновенный каталог клиента обретет sdk папку, в которую входит все ОКИ файлы заголовков.

Затем вам необходимо скомпилировать файл с -I D:\instantclient_12_1\sdk\include, чтобы ваш компилятор знал, где искать occi.h и другие файлы заголовков. Вам также может понадобиться -L, чтобы сообщить, где найти библиотеки Oracle; предположительно у вас уже есть -lclntsh и/или -locci, которые относятся к библиотекам, которые вы должны иметь уже из базового пакета.

+0

@ user200399. Я не использую это, но [этот вопрос может показать вам, что вам нужно делать] (http://stackoverflow.com/q/2676417/266304). –

+0

'Project-> Properties-> Свойства конфигурации-> C/C++ -> Дополнительные каталоги вложений и добавьте путь к папке instantclient/include. –

+0

Как уже сказал @Alex Poole, вам также нужно сообщить компоновщику, где найти библиотеки Oracle, вы можете сделать это с помощью: «Project-> Properties-> Configuration Properties-> Linker-> General-> Additional Library Directories' и добавить путь на ваш sdk/lib/msvc. –

Смежные вопросы