我有一個包含多個項目的解決方案。Visual Studio 2013 C++/CLI智能感知與參考庫
- Project1是C++/CLI混合模式項目。
- Project2是一個支持CUDA的C++/CLI混合模式項目(CUDA編譯器用於* .cu和* .cuh文件)。
Project2通過Project2屬性中的Common Properties->References
接口包含Project1。 一切都很好編譯;但是,intellisense將project2的代碼中的任何引用強調爲project1作爲錯誤。具體來說,我得到以下類型的消息。
在我的* .h文件中的項目2
#pragma once
namespace Project2
{
class TypeInProject2
{
property Project1::TypeInProject1^ obj
{
Project1::TypeInProject1^ get();
void set(Project1::TypeInProject1^ value);
};
//"Project1" is underlined in red
//IntelliSense: name followed by '::' must be a class or namespace
};
}
我可以智能感知幸福的通過將包括在PROJECT1頭,但是這會導致所有的PROJECT1的類的重新定義,並提出了編譯錯誤。
在C++/CLI項目選項中,我應該瞭解一些使IntelliSense感到滿意的怪癖嗎?
更新:我應該補充說,有時一切工作正常。但是在退出VS13並重新開始項目之後,所有智能感知錯誤再次出現。
沒有明顯的原因。間接的,IntelliSense解析器確實需要編譯後的Project1程序集中的元數據才能完成其工作。如果該集會尚不存在,或者已經過時,那麼它不可避免地會陷入困境。快速重新編譯應該解決這個問題。 –
重新編譯/重新加載任一項目都不能解決它。我明確指出project2是一個CUDA的C++/CLI項目。沒有包含CUDA編譯器,我從來沒有遇到過這個問題。 –
有人編輯我的問題並刪除了CUDA標記,但我認爲CUDA支持是這裏的關鍵 - 過度管理。 –