所以我最终清除了C文件上的所有错误和警告,然后继续链接它们。 我有2个C文件,我需要与编译器链接。
et5ibwqm0.c intfac_fl.c
我提供了编译命令:
gcc -shared -o et5stcklib.so et5ibwqm0.o intfac_fl.o -L$FGLDIR/lib
不起作用,我收到此错误:
et5ibwqm0.o: could not read symbols: File in wrong format
collect2: ld returned 1 exit status
答案 0 :(得分:0)
我不记得,但你应该预先编译你的C文件。 为此:
答案 1 :(得分:0)
您使用Informix标记了此内容。您尝试从4GL程序调用这些C模块,因此需要将它们组合成一个通用的可执行文件吗?
如果是这样,只需在compile指令中包含所有源模块即可。假设c4gl,类似于:
c4gl main.4gl others.4gl et5ibwqm0.c intfac_fl.c -o mainwithccalls.4ge
答案 2 :(得分:0)
原来它只是一个缺少-m32说明符导致编译器拒绝其中一个对象 - user5586678