Qt moc生成的文件出現無法打開對應的頭文件

先說解決方法:

打開項目屬性頁->Qt Meta-Object Compiler->moc.exe,將Force Include項自動生成的stdafx.h;../../%(Filename)%(Extension)清空,然後在Prepend Include填入stdafx.h

下面我們來說一下怎樣的操作纔會出現這種報錯

.\GeneratedFiles\Debug\moc_qcustomplot.cpp(10): fatal error C1083: 無法打開包括文件: “../../qcustomplot.h”: No such file or directory

第一步:在使用QT生成工程時,如果在配置工程時勾選了使用預編譯頭文件

第二步:源代碼文件不是直接在工程目錄下或者添加了一些開源庫的源碼,比如像我添加了qcustomplot開源庫。

稍微仔細看一下../../%(Filename)%(Extension)這個就會明白,這個參數強制限制的使moc_XXX.cpp中添加對應頭文件的格式爲:“../../XXX.h”,即必須對應的頭文件必須在工程目錄下

這個時候編譯就會出現報錯.\GeneratedFiles\Debug\moc_qcustomplot.cpp(10): fatal error C1083: 無法打開包括文件: “../../qcustomplot.h”: No such file or directory,

當然可能還會先報1>qcustomplot\qcustomplot.cpp(30133): fatal error C1010: 在查找預編譯頭時遇到意外的文件結尾。是否忘記了向源中添加“#include "stdafx.h"”?,這種情況有兩種方法:

1. 老實的在.cpp文件的最頂端添加#include "stdafx.h"

2. 在解決方案資源管理器中選擇qcustomplot.cpp後右鍵單擊,修改屬性頁,修改爲不使用預編譯頭,這個方法可以避免部分開源代碼在添加了stdafx.h後出現大量的報錯或者衝突

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章