2017-08-30 172 views
1

我想弄清楚如何使用Qt Creator的設置並傳遞一些CMake參數。比方說,我有我可以建立一個使用終端,像這樣的應用程序:如何使用Qt Creator接口和設置傳遞cmake參數

cmake .. -DQTDIR=/home/myCustomBuildStuff 
    -DLD_LIBRARY_PATH=/home/myCustomBuildStuff 
    -DCMAKE_INCLUDE_PATH=/home/myCustomBuildStuff/include 
    # etc. 

正如你所看到的,我用我定製的Qt(加上一些其他的庫)。當我使用終端構建時,一切正常。

但現在我想嘗試使用Qt Creator並通過使用Qt Creator設置傳遞所有CMake參數。

我試圖使用可在工具包中找到的CMake Configuration設置。我試圖修改構建設置,並將我的論據直接添加到上面的構建步驟和/或CMake表中。這些都不利於和我的應用程序失敗,包括我的定製QtWidgetsmain.cpp

/usr/lib/x86_64-linux-gnu/libQt5Core.so.5:-1: error: 
    version 'Qt_5.9' not found (required by home/myCustomBuiltStaff/bin/uic) 

在上述路徑的錯誤顯然是錯誤的(它需要/home/myCustomBuiltStuff/文件夾進行搜索)。但是,如何通過使用Qt Creator設置來傳遞路徑?

請注意,我無法觸及CMake文件的內容,只是想在構建CMake文件時將其構建,因爲當我將所有路徑作爲參數傳遞給CMake時。

+0

您可以嘗試禁用/刪除默認構建步驟,並將您的構建命令添加爲「自定義流程步驟」。這應該給你與在終端中運行完全相同的結果。 – m7913d

+0

謝謝,我能夠通過使用自定義步驟來重現構建。 – vicrucann

+0

我如此糟糕地錯過了CMake嚮導,它可用於Qt Creator(v3.5)的舊版本,如[本文]中所示(http://preshing.com/20170511/how-to-build-a-cmake-基於項目/#樓與 - QT-創造者)! – normanius

回答

0

因此,我遵循評論中給出的建議,並且必須添加我自己的自定義生成步驟,以確保我有正確傳遞的CMake參數。我找不到任何其他方式通過使用Qt Creator的設置和菜單來傳遞它們。

這是步驟列表我所做的:

  1. 轉到Projects,並選擇了Build編輯。如果你有多種配置,你將不得不重複下面的步驟。
  2. 禁用或刪除默認的CMake步驟,通常它會類似cmake --build . --target all
  3. 選擇您的Build directory
  4. 添加新的自定義工藝步驟命令cmake參數是你的CMake的參數;通常您會將工作目錄保留爲默認值。
  5. 添加新的自定義工藝步驟命令make並添加任何必要的參數(例如LD_LIBRARY_PATH)。
  6. 開始並編輯Run設置:確保可執行文件指向剛創建的cmakemake。在那裏你還可以添加任何必要的命令行參數。
0

這是我正在使用的版本4.3.1。如果還沒有完成,你應該有最新版本的qtcreator。

文件 - >打開:

選擇你的項目的CMakeLists.txt文件。選擇你的目標,你至少應該能夠打開項目。

現在點擊「項目」。確保你選擇了Build &運行 - >生成並在Cmake下點擊「添加」 - >「字符串」或「目錄」。在你的情況目錄更有意義。在左邊放置定義,當然沒有「-D」,右邊是值。

重複你要定義並單擊每個變量的一步「應用」

如果不工作,我會嘗試將CMAKE_EXE_LINKER_FLAGS設置爲-L/home/myCustomBuildStuff

提示:看它如果您在構建步驟部分下使用makefile,則可以將VERBOSE = 1參數傳遞給工具參數。這樣你的輸出將顯示變量是否真的被傳遞。

提示:記住激活「高級」選項,以便查看更多(如果不是所有)定義爲Cmake的變量。

+0

我已經嘗試將我的參數添加到您描述的CMake表中,但那並不像我原來的問題所述的那樣工作(對不起,如果不清楚)。不幸的是,鏈接標誌也沒有幫助。我嘗試了評論中提到的方法,它似乎工作。不知道我是否可以通過編輯設置來完成,但我會堅持現在的工作。 – vicrucann