2014-04-12 61 views
2

我發現用Qt Creator的3.0.1未編譯和鏈接之前刷新配置的當前狀態,一個奇怪的問題更改後刷新Makefile文件。爲了更好地解釋自己,說我的代碼是不是一開始編譯,因爲缺少一個庫(例如opencv_core248d)。如果我在.pro文件中添加這樣的:Qt的不是在.pro文件

LIBS += -L$$(OPENCV_DIR)/build/x86/vc11/lib -lopencv_core248d 

該項目將不會編譯和鏈接,直到我去和手動刪除的qmake產生的makefile(全部清除不工作!)。在此之後它將編譯,但是如果我評論它上面的線將繼續彙編,直到我再次手動刪除生成文件!

我使用msvc2012 86的Qt 5.2.1和隨之而來的Qt Creator的。操作系統是Win7 SP1 x64。這是Qt Creator上的一個錯誤還是我錯過了一些東西?

+0

所有你需要做的是重新運行qmake的。沒有必要清理項目。右鍵單擊項目樹中的項目根目錄並選擇「運行qmake」。檢查Makefile以查看是否存在使Makefile本身依賴於項目文件的操作。如果沒有這樣的動作,那麼也許它不被構建工具支持(你的情況是nmake/jom)。我的猜測是,jom試圖與nmake兼容。 –

回答

3

不幸的是,這是一個已知的問題,有時QtCreator不會重新運行qmake的,你需要明確重新運行qmake的。 QtCreator中有一個選項可以運行qmake。但是,不需要刪除背景中的任何內容。

這是一個長期存在的問題仍然不是固定的,它是第一個報道的問題:

Creator should know when to rerun qmake

+0

是的,這對我有效。謝謝。 –

+0

IIRC,QtCreator永遠只運行,如果生成文件不存在QMAKE。當.pro文件發生更改時,makefile應該有一個重新生成自己的操作。不幸的是,qmake在某些平臺上不會生成適當的操作,或者某些平臺上的make工具不能正確支持。我不記得是哪種情況,以及在什麼平臺上...... –

+0

@KubaOber:AFAIK,qmake在受支持的開發主機平臺上生成這樣一個目標。爲了確保,我需要檢查qmake源代碼,但是。 – lpapp

相關問題