2017-09-25 52 views
1

我使用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

回答

1

Gtkmm確實是一個可移植的實現。但是,您不能簡單地將可執行文件從Linux複製並粘貼到Windows。您必須爲每個運行它的平臺編譯一次程序。在你的情況下,你必須爲Windows創建典型的.exe可執行文件。

如果您想交叉編譯Windows的可執行文件(即使用您的Linux機器爲Windows創建.exe文件),請查看mingw編譯器工具鏈。這blog也可能有一些有趣的信息給你。

+0

謝謝,但我聽說用Windows編譯gtkmm3並不容易...:/ –

+0

這不是,這就是爲什麼當你交叉編譯時你應該得到一個_pre-compiled_gtkmm3來鏈接它。 –

+0

我怎樣纔能有一個預編譯的gtkmm3? :) –

相關問題