Я пытаюсь скомпилировать программу на C ++ в UNIX, используя CC: Sun C++ 5.11 SunOS_i386
, Я создал следующее 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
Когда я выполнил Makefile, я получаю следующую ошибку …
#include <iostream>
.........1
PCC-S-02015, unable to open include file
Есть что-то, что я пропускаю? Что еще я могу сделать?
Предполагая, что ваш исходный файл является Oracle Pro * C .pc
файл, ошибка означает, что Pro * C не смог найти ваш включаемый файл. Если у вас нет приведенной ниже ФАТАЛЬНОЙ ошибки, вызванной этим, ошибка PCC-S-02015 на самом деле является простым предупреждением. Прекомпилятор предупреждает вас, что он нашел директиву include, которую он не может обработать, поэтому он оставляет ее нетронутой в сгенерированном .cpp
файл. В этом случае он будет правильно обработан следующим шагом сборки.
Проблема, если часто вы используете позже символ, определенный в одном из этих включаемых файлов (в основном typedef
или эквивалентное макроопределение типа), приводящее к фатальной ошибке компиляции.
В этом случае вы должны объявить включаемые папки в файле pcscfg.cfg, расположенном по адресу $ORACLE_HOME/precomp/admin
или же
включить в командную строку при вызове proc
,
Ref: https://lists.debian.org/debian-user/2001/09/msg00273.html — речь идет о Debian, но описывает эквивалентную проблему.
Других решений пока нет …