首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MicroFocus cobol命令cobinit、在我的C程序中抛出错误。

MicroFocus cobol命令cobinit、在我的C程序中抛出错误。
EN

Stack Overflow用户
提问于 2016-12-20 09:31:51
回答 1查看 572关注 0票数 3

根据Micro支持站点中的文档,要从C程序调用cobol程序,我们只需要遵循以下步骤。

代码语言:javascript
复制
main(int argv, char *argv)
{

cobinit();             /* Initialize COBOL environment */

cobcall("cobep", 0, NULL); /* Call a COBOL program */

cobtidy();             /* Close down COBOL environment */

return(0);

} 

在此基础上,我提出了一个简单的C程序来调用一个已经在工作的Cobol程序,但我猜我得到了链接错误。

C程序

代码语言:javascript
复制
cat call.c

#include<stdio.h> 
#include "cobcall.h" 
#include "cobmain.h" 

int main() 
{ 

int ret=0; 
cobinit(); 
ret=cobcall("cobolprogram.gnt",1,NULL); 
cobtidy(); 

return 0; 
} 

错误信息接收

代码语言:javascript
复制
gcc -Wall call.c -o call 
call.c: In function 'main': 
call.c:10: warning: pointer targets in passing argument 1 of 'cobcall'   differ in signedness 
/usr/ccs/bin/ld: Unsatisfied symbols: 
cobtidy (first referenced in /tmp/ccQBPw6r.o) (code) 
cobcall (first referenced in /tmp/ccQBPw6r.o) (code) 
cobinit (first referenced in /tmp/ccQBPw6r.o) (code) 
collect2: ld returned 1 exit status 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-20 12:17:50

如果您使用MF,那么您可能可以获得付费支持。在任何情况下,我可以告诉你,从gcc和图书馆的一些知识。

C编译器编译得很好。它只抱怨char *const char *的签名问题,但这不重要。要解决cobcall的实际定义的标题中的检查问题,我假设将其更改为其中之一应该会修复编译器警告:

代码语言:javascript
复制
ret=cobcall((char *)"cobolprogram.gnt",1,NULL); 
ret=cobcall((const char *)"cobolprogram.gnt",1,NULL);
ret=cobcall((unsigned char *)"cobolprogram.gnt",1,NULL); 
ret=cobcall((const unsigned char *)"cobolprogram.gnt",1,NULL);

附带注意:据我所知,您没有将文件扩展名传递给cobcall,因此,为了使其稍后工作,您可能需要删除.gnt部分。

您所得到的错误来自链接器,因为它不可能解决这些特定于mf的函数。我浏览过不同的MF文档,但没有找到您需要的库名。也许是libcoblibcobmflibmfcob或者..。

编辑:,我在一个名为libcobol库的旧MF手册中找到了一个引用。

一旦您知道库名,就使用-lname (例如,-lcobol/ -lcob/ -lcobmf/-lmfcob)让链接器知道它可以在这个库中解析它们。添加-L/path/to/library,让链接器知道在哪里可以找到库。

如果编译成功,您的主程序会抱怨“无法找到libcob.so”(或libcobmf.so或其他名称),将LD_LIBRARY_PATH设置为指向库名。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41238940

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档