我正在尝试编译现有的C ++项目,但是出现了这个错误:
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
最后成为oracle的路径。 但我仍然得到错误,有人可以帮忙吗?
PS我在项目中注意到有以下几行:
#include "occi.h"
也许是因为这个?
答案 0 :(得分:2)
基本套餐还不够。它的描述说明了运行 OCI,OCCI和JDBC-OCI应用程序所需的所有文件" (重点补充);只是你可以运行一个OCI程序,但你不能编译一个。您需要下载其他即时客户端组件。特别是对于occi.h
标题,您需要列出第五个文件:
* Instant Client Package - SDK:其他头文件和用于使用Instant Client开发Oracle应用程序的示例makefile
如果您在同一个地方下载并解压缩基本软件包,则您的即时客户端目录将获得一个sdk
文件夹,其中包含所有OCI头文件。
然后您需要使用-I D:\instantclient_12_1\sdk\include
进行编译,以便您的编译器知道在哪里查找occi.h
和其他头文件。您可能还需要-L
告诉它在哪里找到Oracle库;大概你已经有-lclntsh
和/或-locci
,它们指的是你应该已经从基本包中提供的库。