在不同的计算机中使用C对象文件(.o)时出现问题

时间:2009-10-25 15:30:39

标签: c gcc object-files

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

除非我尝试复制.o文件并在另一台PC上使用它,否则一切似乎都很好。当我复制使用目标文件的文件时,编译并运行它,它只是给出了一个窗口,告诉我一个错误,如果我想发送一个错误报告。

当我尝试在另一台PC上重新编译我的目标文件的.c文件并重新运行程序时,它似乎有效。

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

谢谢!

2 个答案:

答案 0 :(得分:3)

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

所以你使用DevC ++的gcc版本,不要把它和其他gcc软件包混合起来作为MinGW。

答案 1 :(得分:1)

为什么不考虑创建一个共享库来移动目标代码? (.so或.dll)