我有一個項目,我不得不從具有.cpp /頭文件分離到只將頭文件加入定義。我試圖最初將cpp文件的內容複製到頭文件中,但是我的ide - VS2012 express - 發送給我一個循環,它表示頭文件包含它自己,所以當我刪除包含「class.h」時,它抱怨說在Class :: functionname的情況下,Class不能被識別。最後,我決定在標題定義的定義本身例如僅C++頭文件項目 - 使用不同的程序集
class Thing {
public:
void func { code; }
}
這固定在我的項目編譯的問題。麻煩的是我有一個測試項目 - WinUnit - 我無法再訪問這些函數。該項目曾經是一個靜態庫,並相應鏈接,但因爲沒有.cpp文件,該項目沒有生成.lib文件。試圖改變到動態鏈接庫,同樣的問題 - 沒有DLL生產。所以我添加了一個項目引用,它似乎起作用,因爲它在我輸入#include「Class.h」時識別了我的類文件。
我的問題是它仍然不編譯類。它根本無法識別測試項目的.cpp文件中的類名。我甚至嘗試將頭文件添加到測試項目中,但仍然沒有喜悅。我嘗試設置其他包含目錄來指向標頭的位置 - 沒有用。
我該如何做到這一點?
編輯: 仍然卡住了,所以我創建了一個SSCCE,它工作正常,將測試項目指向Additonal INclude目錄中的頭文件目錄,它工作正常。雖然主要項目編譯好,我注意到它有一個intellisense錯誤 - 標識符「ClassName」未定義。其他所有類都可以識別其他類。 #include「className」存在。當我構建測試項目時,第一個錯誤與此行與智能感知錯誤相關:錯誤1錯誤C2143:語法錯誤:缺少';'在'*'之前
實際的行是:ClassName * obj; - 這是一個私人變量。
測試項目中有629個錯誤 - 其他代碼:c4430,c2061。我猜這些只是最初的問題相關的類沒有被識別的副作用...我失去了,可能退縮,並重新考慮失敗這....
編輯:修復intellisense錯誤,所以所有的錯誤都在測試項目現在 - 上升到826錯誤。在包含它們時查看頭文件,但不能識別任何類名。錯誤代碼:c2061,c2065,c2923等
爲什麼你想從一個精心打造的項目轉移到只有頭部的項目? – 2013-02-20 09:40:40
爲了使用SDK,但現在我發現了一個備用解決方案,所以已經回滾了! – 2013-02-21 20:48:57