无法在Redhat EL 7上使用GCC编译C程序

2020-08-22 18:22发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好。 我们有一个用C语言编写...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好。

我们有一个用C语言编写的接口程序在HP-UX服务器上运行了20年,现在该服务器将停产,并替换为在RHEL7上运行的vm。 该程序使用经典的RFC SDK库,并包含(librfc.a,saprfc.h,sapitab.h),现在我们需要重新编译和创建新的可执行文件,但在编译过程的链接器步骤中却遇到了问题。

这是我们系统中的数据

SO-RHEL7

GCC版本:4.8.5

glibc:2.17

我已查阅此SAP注释并下载了SAP NW RFC SDK 7.50,并执行了以下步骤。

https://launchpad.support.sap.com/#/notes/2573953

Linux(x86_64,64位)

2。 在Linux上编译

C. C程序,gcc-4.7及更高版本

gcc -v -std = gnu11 -DSAPwithUNICODE -I .../nwrfcsdk/include -c -o sflightClient.o sflightClient.c

3。 在Linux上链接

对于所有编译器,无论使用C还是C ++:
g ++ -v -o sflightClient sflightClient.o .../nwrfcsdk/lib/ libsapnwrfc.so .../nwrfcsdk/lib/ libsapucum.so

链接之后,我得到以下输出。 RFC *和It *函数都在sapitab.h包含文件中,但是netweaver RFC SDK 7.50没有此文件。

任何帮助都会给人留下深刻的印象。

sapserv.o:在函数`rfc_error'中:
sapserv.c :(。text + 0x9ad):未定义对`RfcLastErrorU'的引用
sapserv.c :(。text + 0xa49):未定义对 `RfcCloseU'
sapserv.o:在函数`inbound_idoc_process':
sapserv.c :(。text + 0xaea):未定义引用`ItFillU'
sapserv.c :(。text + 0xb51): 未定义对`ItGetLineU'
sapserv.c :(。text + 0x15e7):未定义对`ItFillU'
sapserv.c :(。text + 0x1640):未定义对`ItFillU'
sapserv .c :(。text + 0x1658):未定义引用到'ItFillU'
sapserv.c :(。text + 0x16bf):未定义引用到'ItGetLineU'
sapserv.c :(。text + 0x1cb8): 未定义对`ItFillU'
sapserv.c :(。text + 0x1cd8):未定义对`ItFillU'
sapserv.c :(。text + 0x1dc3):未定义对`ItFillU'
sapserv .c :(。text + 0x1e1c):未定义对`ItFillU'的引用
sapserv.o:在函数`srv_inbound_idoc_process':
sapserv.c :(。text + 0x1f41):未定义对`RfcGetDataU'的引用< br> sapserv.c :(。text + 0x1fb6):未定义 d对`RfcRaiseU'的引用
sapserv.c :(。text + 0x1fc3):对`RfcListenU'的引用未定义
sapserv.c :(。text + 0x2008):对`RfcSendDataU'
sapserv的未定义引用 .o:在函数'main'中:
sapserv.c :(。text + 0x3964):对'RfcAcceptU'的未定义引用
sapserv.c :(。text + 0x39aa):对'RfcEnvironmentU'的未定义引用 br> sapserv.c :(。text + 0x39be):对'RfcInstallFunctionU'的未定义引用
sapserv.c :(。text + 0x39f7):对'RfcAbortU'的未定义引用
sapserv.c :(。text + 0x3aac):未定义对`RfcDispatchU'的引用
sapserv.c :(。text + 0x3ade):未定义对`RfcCloseU'的引用
collect2:错误:ld返回了1个退出状态

谢谢

努诺