天天看點

Qt Creator編譯器

Qt是很強的跨平台軟體,各種32-bit和64-bit的平台都支援Qt,并且通常可以在每個平台上可以使用GCC進行建構,也可以使用供應商提供的編譯器,還可以使用第三方編譯器。在Qt Creator中,工具包指定編譯器和在特定平台上建構或運作應用程式的必要工具。

Qt Creator會自動檢測由系統或者安裝程式注冊的編譯器。你可以添加其他編譯器或使用自動檢測到的編譯器的其他版本來建構應用程式,以下是幾個常見的編譯器:

(1)GCC(GNU Compiler Collection) 是一個針對于Linux和OS X的編譯器。

(2)MinGW(Minimalist GNU for Windows)是一個GCC和GNU Binutils的原生軟體端口,用于在Windows上開發原生的Microsoft Windows應用程式。MinGW和Qt Creator以及Qt installers for Windows一起釋出。

(3)Linux ICC (Intel C++ Compiler)是針對于Linux的C和C ++編譯器。

(4)Clang是一個針對于Windows、Linux和OS X的C、C++、Objective C輕量級編譯器。

(5)QCC是編譯QNX的C++應用程式的接口。

(6)Custom自定義編譯器,需手動添加編譯器路徑。

想要使用GCC、MinGW、Clang或QCC建構一個應用程式,首先指定路徑到編譯器所在的目錄中,然後從可用版本的清單中選擇應用程式二進制接口(ABI)的版本。你還可以建立一個自定義的ABI定義。對于QCC來說,還需指定路徑到QNX Software Development Platform (SDP)中。

【問題】 使用編譯器類型為GCC進行添加編譯器,路徑改了,還是報錯下圖如圖

Qt Creator編譯器

編譯報錯:

Qt Creator編譯器

【分析原因】

makefile是由qmake産生的,當qtcreator標明了qmake後,編譯用的cc編譯器是由qmake決定的。qtcreator裡更改compilers隻能影響build environment裡的PATH路徑,無法影響qmake在生成makefile時指派給CC等,是以給上圖的GCC的路徑改了無效。

接着找到原因 qmake.conf 影響了qmake生成makefile。

在 Qt/5.4/gcc_64/mkspecs 或者 qt/mkspecs中的每一個目錄裡面,都有一個包含平台和編譯器特定資訊的qmake.conf檔案。這些設定适用于你要使用qmake的任何項目,請不要修改它,一般來說不要去修改。

假如你所有的應用程式都必須和一個特定的庫連接配接,你可以把這個資訊添加到相應的qmake.conf 檔案中

【解決辦法】

(1)如果你的編譯器選擇的Type是GCC,就會預設跑GCC的qmake.conf,不會使用配置路徑的編譯工具,則要修改GCC編譯器對應的qmake.conf檔案

QMAKE_CC       = gcc   (交叉編譯工具的GCC)

QMAKE_CXX    = g++   (交叉編譯工具的G++)

Qt Creator編譯器

(2)選擇編譯器的Type是Custom,配置交叉編譯工具的路徑,Coustom對應的qmake.conf會使用配置路徑的GCC、G++