2014-10-07 30 views
0

在我正在開發的一個項目中,我有兩個預處理器定義(CPU_RENDER和GPU_RENDER),用於控制構建是否使用CPU渲染場景或GPU。在我開發軟件時,我一直在這兩者之間來回翻轉。Visual Studio隱藏的預處理器定義

然而,突然之間,儘管事實上我從Visual Studio的預處理器定義中刪除了一些文件,但聲稱GPU_RENDER的一些文件被定義。其他人正常工作。這不僅僅是可視化的,因爲現在的CPU構建在鏈接上失敗,試圖找到某些僅用於GPU的函數的源代碼。

我已經對「#define GPU_RENDER」的整個解決方案進行了搜索,以防萬一我做了一些愚蠢的事情,但是結果空了。每次我參考GPU_RENDER時,我都會搜索,但所有這些只是ifdefs。

我沒有使用任何新庫,所以我不認爲這可能是名稱衝突。

+2

我猜想編譯器的標誌,但沒有在這個問題附近足夠的信息來回答它。 – IdeaHat 2014-10-07 16:52:36

+0

在文本編輯器中打開'.vcproj'文件並搜索'GPU_RENDER'。 – wimh 2014-10-07 16:56:55

回答

2

顯然,違規文件已經獲得了自己的一組預處理器定義。 (我必須點擊「屬性」,選擇一個文件而不是項目,使文件具有一組本地定義)

刪除文件的個人定義並勾選「從父項目或項目默認值繼承」盒子解決了這個問題。