当我在Windows上运行它时,为什么我的Linux编译的二进制文件不起作用?

问题描述:

我使用C++与gtkmm的一个非常简单的代码:当我在Windows上运行它时,为什么我的Linux编译的二进制文件不起作用?

#include <gtkmm.h> 

int main(int argc, char *argv[]){ 
Gtk::Main app(argc, argv); 
Gtk::Window window; 
Gtk::Main::run(window); 
return EXIT_SUCCESS; 
} 

我编译这个Linux和它是完美的,我可以执行它。但问题是,当我复制过我没有实现的可执行文件以使其在Windows上可行时。但我一直认为Gtkmm是便携式的!!

我该如何解决这个问题?

非常感谢!

+7

该库可用于为不同平台构建代码 - 这并不意味着您可以跨平台复制可执行文件。您仍然需要为每个平台构建程序。 – xaxxon

Gtkmm确实是一个可移植的实现。但是,您不能简单地将可执行文件从Linux复制并粘贴到Windows。您必须为每个运行它的平台编译一次程序。在你的情况下,你必须为Windows创建典型的.exe可执行文件。

如果您想交叉编译Windows的可执行文件(即使用您的Linux机器为Windows创建.exe文件),请查看mingw编译器工具链。这blog也可能有一些有趣的信息给你。

+0

谢谢,但我听说用Windows编译gtkmm3并不容易...:/ –

+0

这不是,这就是为什么当你交叉编译时你应该得到一个_pre-compiled_gtkmm3来链接它。 –

+0

我怎样才能有一个预编译的gtkmm3? :) –