我正在尝试使用 CC: Sun C++ 5.11 SunOS_i386
在 UNIX 上编译一个C++程序。我创建了以下Makefile
。
ORACLE_HOME=/app/ora/local/product/11.2.0.3/db_1
CC= CC -m64 -library=iostream
test.cpp : test.pc
$(ORACLE_HOME)/bin/proc test.pc code=CPP sys_include=/usr/include cpp_suffix=cpp
test.o : test.cpp
$(CC) -c test.cpp -DDEBUG -DSOLARIS -I$(ORACLE_HOME)/precomp/public
test.bin: test.o
$(CC) -o test.bin test.o -L$(ORACLE_HOME)/lib -lclntsh -lnsl -lsocket -lgen -ldl
当我执行生成文件时,我收到以下错误...
#include <iostream>
.........1
PCC-S-02015, unable to open include file
我缺少什么吗?我还能做什么?
假设原始源文件是 Oracle Pro*C .pc
文件,则错误意味着 Pro*C 找不到包含文件。如果您没有由此引起的致命错误,则PCC-S-02015错误实际上是一个简单的警告。预编译器会警告您,它已找到无法处理的 include 指令,因此它会在生成的 .cpp
文件中保持不变。在这种情况下,它将在下一个构建步骤中正确处理。
如果您以后经常使用其中一个中定义的符号,则问题包括导致致命编译错误的文件(主要是类型的typedef
或等效宏定义)。
在这种情况下,您必须在位于 $ORACLE_HOME/precomp/admin
或 的 pcscfg.cfg 文件中声明包含文件夹在调用 proc
时包含在命令行中。
参考: https://lists.debian.org/debian-user/2001/09/msg00273.html - 它是关于 Debian 的,但描述了一个等效的问题。