当我在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是便携式的!!
我该如何解决这个问题?
非常感谢!
Gtkmm确实是一个可移植的实现。但是,您不能简单地将可执行文件从Linux复制并粘贴到Windows。您必须为每个运行它的平台编译一次程序。在你的情况下,你必须为Windows创建典型的.exe
可执行文件。
如果您想交叉编译Windows的可执行文件(即使用您的Linux机器为Windows创建.exe
文件),请查看mingw
编译器工具链。这blog也可能有一些有趣的信息给你。
谢谢,但我听说用Windows编译gtkmm3并不容易...:/ –
这不是,这就是为什么当你交叉编译时你应该得到一个_pre-compiled_gtkmm3来链接它。 –
我怎样才能有一个预编译的gtkmm3? :) –
该库可用于为不同平台构建代码 - 这并不意味着您可以跨平台复制可执行文件。您仍然需要为每个平台构建程序。 – xaxxon