c - 在不同计算机上使用 C 目标文件 (.o) 时出现问题

标签 c gcc object-files

我正在尝试创建一个可在任何计算机上使用的目标文件。所以我所做的就是创建一堆函数并将它们放在 .c 文件中。使用 gcc -c myfile.c 生成 myfile.o。 (我运行的是 Windows XP,并从 DevC++ 获得了 gcc)然后我创建了另一个使用我的目标文件的程序。

一切似乎都很好,除非我尝试复制 .o 文件并在另一台电脑上使用它。当我复制使用目标文件的文件、编译并运行它时,它只会显示一个窗口,通知我有错误以及我是否希望向其发送错误报告。

当我尝试在另一台 PC 中重新编译目标文件的 .c 文件并重新运行该程序时,它似乎可以工作。

所以我不明白的是为什么我不能只在一台机器上编译 .o 文件一次,然后将其复制到另一台机器并创建一个使用相同目标文件的程序,而不必重新编译目标文件。

谢谢!

最佳答案

这很可能是因为您使用了不同的 C 库。 尝试在所有计算机上使用完全相同的 gcc 版本,从同一个软件包安装。

所以你使用 DevC++ 的 gcc 版本,不要将它与 MinGW 等其他 gcc 软件包混合。

关于c - 在不同计算机上使用 C 目标文件 (.o) 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1621187/

相关文章:

c - 从目标文件中提取一个部分以分隔 .o

c - 为什么需要重定位同一文件中的全局符号?

c++ - WxWidgets 编译帮助

c - 驯服 glutTimerFunc

c - 通过串口发送文件

c++ - 需要 Union hack

c - 用C语言从M68k ram地址中获取特定的十六进制

c - .c 文件中的内联 PPC 汇编代码出现 "Error: unsupported relocation against <register>"错误

c++ - 如何将您自己的 C 代码编译为 ModemManager 的一部分

libxlsxwriter 上的 chartcheet