Я использую прекомпилятор Pro * C 12.2.
У меня есть файл .c
, который использует free()
, но string.h
не включен в файлы .c
, .h
или .pc
.
Makefile
имеет SYSHDRS= /usr/include
других файлов, но не string.h
.
Исполняемый файл после компиляции работает в среде Oracle 11g, но не в 12.2.
Обратите внимание, что #include <string.h>
отсутствует в 11g и 12.2, а также в файле .c
. Но он работает для Oracle 11g и выдает ошибку памяти для 12.2.
В Makefile
единственным отличием является путь ORACLE_HOME
& mdash; в первом он указывает на 11g, а во втором на 12.2.
Есть ли разница между прекомпиляторами 11g и 12.2, относящимися к заголовочным файлам? Для обеих сред string.h
присутствует в /usr/include
.
Решение, которое я нашел, состояло в том, чтобы включить string.h
в файл .pc
. Но это только временное решение. В других .pc
файлах также отсутствует signal.h
, и полученный исполняемый файл вызывает ошибку памяти для 12.2.
Пожалуйста, ведите меня!