在另一个平台上运行c应用程序

时间:2014-01-07 23:34:06

标签: c windows dll cross-platform

我完成了我在c中实现GUI的应用程序 - 它是一个计算optionprices(call和put)的金融计算器

编译并运行应用程序没问题。

我的平台: Windows XP - X86 32位处理器。

也许我有点天真 - 我将exe文件复制到usb并将其安装在我的朋友计算机上:

他的平台: Windows Vista - X86 64位处理器。

是的 - c不像java(独立于平台),但为什么不尝试: - )

当我尝试启动exefile时出现错误:

程序无法执行,因为缺少libgobject-2.0-0.dll。

所以当我回到家时,我搜索了这个dll文件,它位于bin文件夹中。什么binfoler?我习惯于查看文件的完整路径,但我只能看到它位于bin文件夹中。

所以我的问题:

  1. 这是什么libgobject-2.0-0.dll?它在做什么?
  2. 它位于何处 - 完整路径?
  3. 最后_如何在该平台上运行此exe文件?
  4. 我只想学习c以及如何使其与其他平台兼容。

    这个问题的答案是什么 - 在其他平台上重新编译代码?

    提前致谢!

2 个答案:

答案 0 :(得分:3)

  

所以我的问题:

     

1。这是什么libgobject-2.0-0.dll?它在做什么?

它是图书馆的GLib / GObject / GTK + tryptichon的一部分。它们是GTK +项目的一部分,该项目是一个开源用户界面和应用程序框架。 http://www.gtk.org

程序的某些部分使用GObject功能,因此依赖于此库。

  

2。它位于何处 - 完整路径?

您系统上的某处。有很多可能的位置。但这并不重要,只需将其复制到你的.exe旁边 - 无论如何这都是推荐的地方。哦,并准备好复制其他一些DLL。

  

3。最后_如何在该平台上运行此exe文件?

您的问题不是平台问题,而是缺乏正确的分发。如果在不同的32位Windows机器上运行,你会看到同样的问题。

答案 1 :(得分:1)

这不是C语言问题,这是一个应用程序安装问题。复制.EXE在很多情况下都不起作用。你需要使用的是一个Windows安装程序,它将获取所有依赖程序集,例如libgobject-2.0-0.dll,并将它们打包成一个漂亮的Windows安装程序文件 - 一个.MSI文件。