2009-12-19 69 views
9

如何在Qt上交叉編譯我的應用程序。至於每個項目如何在不同平臺上交叉編譯qt應用程序

我需要兩個版本

1)。在Qvfb上運行的計算機上& i386架構

2)。與Linux Framebuffer一起運行的設備& ARM體系結構

我已經爲設備以及Qvfb編譯了Qt。我可以在兩個平臺上運行示例,但是如何交叉編譯我的應用程序。我寧願兩個輸出都停留在不同的目錄中,這意味着i386的輸出保持在output-i386平臺中,並且ARM的輸出保持在output-ARM目錄中。

我正在使用Qt 4.6的嵌入式Linux。

回答

2

Qt從mkspec文件中獲取所有平臺特定的詳細信息。

指定mkspec文件到qmake,使用qmake的-spec命令行參數進行交叉編譯。

在mkspec文件有很多種定義,通過它可以自定義編譯爲不同的平臺像我可以用DESTDIR到最終輸出文件發送到特定的目錄,OBJECTS_DIR將對象發送文件到特定的目錄。 MOC_DIR將moc生成的文件發送到特定目錄,UI_DIR將uic生成的頭文件和cpp文件發送到特定目錄。

2

this article的結尾顯示瞭如何在工作目錄中更改qmake(您首先需要 運行make destclean)。這篇文章概述了基本的Qt for embedded Linux環境,只是爲了給你一個大局。

4

您可以簡單地在您的.pro文件中設置DESTDIR。見the qmake variable reference。您可能還需要調整變量OBJECTS_DIR,UI_DIR,MOC_DIRRCC_DIR

+0

當然也可以調整其他目錄。否則,您可以嘗試將爲一個平臺構建的對象鏈接到爲另一個平臺構建的可執行文件中。 – 2009-12-22 16:41:01