【问题标题】:have 2 C files which I need to link with the compiler有 2 个 C 文件,我需要与编译器链接
【发布时间】:2015-11-20 18:30:11
【问题描述】:

所以我终于清除了 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

【问题讨论】:

  • 尝试“文件”命令以查看它在et51bwqm0.ointfac_fl.o 上报告的内容。此外,查看用于编译它们的命令也会有所帮助。
  • 编译器编译,链接器 ...
  • @Olaf gcc 命令隐藏了区别,因为它从选项中确定是否应该编译或链接。
  • @Barmar:我知道。它实际上是正确底层工具(编译器、汇编器、链接器等)的“驱动程序”。但它不是编译器。无论如何,我们需要更多信息。
  • 您是否尝试过清除编译目录中的所有.o 文件?

标签: c linux informix 4gl genero


【解决方案1】:

您使用 Informix 对此进行了标记。您是否尝试从 4GL 程序调用这些 C 模块,因此需要将它们组合成一个通用的可执行文件?

如果是这样,只需在编译指令中包含所有源模块。假设 c4gl,类似于:

c4gl main.4gl others.4gl et5ibwqm0.c intfac_fl.c -o mainwithccalls.4ge

【讨论】:

    【解决方案2】:

    原来只是缺少 -m32 说明符导致编译器拒绝其中一个对象 - user5586678

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-03
      • 2013-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-24
      • 1970-01-01
      • 2019-02-10
      相关资源
      最近更新 更多