我有一个非常简单的代码,使用C++和Gtkmm:
#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是便携式的。
我该如何解决这个问题?
2条答案
按热度按时间kiayqfof1#
Gtkmm确实是一个可移植的实现。然而,您不能简单地将可执行文件从Linux复制并粘贴到Windows。你必须为你运行的每个平台编译一次程序。在您的情况下,您必须为Windows创建典型的
.exe
可执行文件。如果您想交叉编译Windows的可执行文件(即使用您的Linux机器创建Windows的
.exe
文件),请查看mingw
编译器工具链。这个blog可能也有一些有趣的信息给你。oalqel3c2#
这是因为Linux和Windows上的可执行文件具有不同的结构:
在Linux上,您有ELF二进制文件,但在Windows上不起作用。类似地,如果您从Windows获取EXE二进制文件并试图在Linux机器上执行它,它将无法工作。
有关详细信息,请参阅ELF和EXE。