Невозможно перекомпилировать устаревшее программное обеспечение Pro * C в Redhat Linux с Oracle 12C - PullRequest
0 голосов
/ 21 января 2019

У нас есть код в Pro * C и на машине с Red Hat Enterprise Linux Server версии 7.5 (Maipo) и Oracle 12 C мы запустили это без ошибок:

proc SQLCHECK=SEMANTICS userid=letri/pruebas@desarrollo iname=carga_hr_fr include=. include=/usr/include include=/oracle/app/oracle/12.2.0/precomp/public include=/oracle/app/oracle/12.2.0/xdk/include include=/oracle/app/oracle/12.2.0/lib include=/oracle/app/oracle/12.2.0/lib include=/usr/lib/gcc/x86_64-redhat-linux/4.8.2/include/

cc -m64 -I. -I/usr/include -I/oracle/app/oracle/12.2.0/precomp/public -I/oracle/app/oracle/12.2.0/xdk/include -I/oracle/app/oracle/12.2.0/lib -I/oracle/app/oracle/12.2.0/lib -I/usr/lib/gcc/x86_64-redhat-linux/4.8.2/include/ -c carga_hr_fr.c

Но генерируем исполняемый файл с помощью этой команды:

cc -o carga_hr_fr carga_hr_fr.o /oracle/app/oracle/12.2.0/lib/libxml12.a -L/oracle/app/oracle/12.2.0/lib -L/oracle/app/oracle/12.2.0/xdk/include -L/usr/lib/gcc/x86_64-redhat-linux/4.8.5/include/ -lm -lclntsh

выдает ошибку:

/ usr / bin / ld: /oracle/app/oracle/12.2.0/lib/libxml12.a(lpxsut.o): неопределенная ссылка на символ 'lxgt2u' /oracle/app/oracle/12.2.0/lib/libclntshcore.so.12.1: ошибка добавления символы: DSO отсутствует в командной строке collect2: ошибка: ld вернул 1 статус выхода

Есть идеи, как ее решить?

Это заголовок кода:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sqlda.h>
#include <sqlcpr.h>

#ifndef ORAXML_ORACLE
#include <oraxml.h>
#endif

#define DEFAULT_KEYWORD "death"


/*********** Conexion a Oracle *************/
#include "lib/liboracle.h"
#define USERID   "dummy/something@development"

EXEC SQL INCLUDE sqlca;
/*****************************************/

1 Ответ

0 голосов
/ 21 января 2019

Возможно, вам нужно добавить -lnls12 к последней строке cc.

...