我正在练习一个C程序(hello.c)调用手册中的cobol程序(say.cob)。
---- say.cob ------
IDENTIFICATION DIVISION.
PROGRAM-ID. say.
ENVIRONMENT DIVISION.
DATA DIVISION.
LINKAGE SECTION.
01 HELLO PIC X(6).
01 WORLD PIC X(6).
PROCEDURE DIVISION USING HELLO WORLD.
DISPLAY HELLO WORLD.
EXIT PROGRAM.
---- hello.c -
#include <libcob.h>
extern int say(char *hello, char *world);
int
main()
{
int ret;
char hello[7] = "Hello ";
char world[7] = "World!";
cob_init(0, NULL);
ret = say(hello, world);
return ret;
}
C:\Users\S M Rao>gcc -c ‘cob-config --cflags‘ hello.c
gcc: error: `cob-config: No such file or directory
gcc: error: unrecognized command line option '--cflags`'
if I run with commands
cobc -c hello.c
cobc -c -static say.cob
cobc -x -o hello hello.o say.o
getting following error
C:\Users\S M Rao>cobc -x -o hello hello.o say.o
hello.o:hello.c:(.text+0x5c): undefined reference to `say'
collect2.exe: error: ld returned 1 exit status我可以在gnucobol文件夹中看到cob-config。和在环境变量COB_CONFIG_DIR %COB_MAIN_DIR%\config中
可能的问题是什么?有什么需要帮忙的吗?



发布于 2021-04-15 20:50:12
cob-config需要是一个可执行的脚本,通常是这样的。当您指定windows路径时,我假设您使用了该路径-而这个路径不能运行shell脚本。您可以使用执行此shell脚本的附加cob-config.bat来解决此问题,但在本例中,它将输出mingw/wsl/cygwin/...可能无法在Windows中使用的路径。
解决方案:
cobc -c hello.c:
cobc的功能中让cob-config作为可执行脚本为您调用C处理器(如果需要,还可以调用链接器):https://stackoverflow.com/questions/67107460
复制相似问题