2013-07-30 19 views
0

我在VS 2010中收到LNK2019和LNK2001錯誤,但沒有使用g ++。我搜索四處尋找原因,但一切都談到要確保正確的頭都包括在內,功能適當的定義等爲什麼我的cpp文件不在ClCompile索引中,導致LNK2019和LNK2001錯誤?

要到項目目錄,並打開.vcxproj文件後,我看到這個名單:

<ItemGroup> 
     <ClCompile Include="main.cpp" /> 
     <ClCompile Include="pilElem3.cpp" /> 
     ... many lines ... 
     <ClCompile Include="utlMatrixFull.cpp" /> 
     <ClCompile Include="utlVector.cpp" /> 
    </ItemGroup> 
    <ItemGroup> 
     <ClInclude Include="pilElem3.h" /> 
     ... many lines ... 
     <ClInclude Include="utlMatrixFull.h" /> 
     <ClInclude Include="utlVector.h" /> 
    </ItemGroup> 
    <ItemGroup> 
     <None Include="pilElement.cpp" /> 
    </ItemGroup> 

pilElement是pilElem3和pilElem4的父類,它們有鏈接器錯誤。
我沒有改變任何過濾器或自創建它以來改變項目。
a)爲什麼VS認爲這個文件應該被忽略?
b)我怎麼能早點注意到這一點?

回答

0

回答我如何懷疑您可能在項目資源管理器中無意中右鍵單擊了該文件,這一切都很容易在VS中完成。

如何確保它未來不會發生有2個選項a)不要使用visual studio或b)使用版本控制系統(如Mercurial)並將項目文件包含在您正在控制的項目中 - 並進行常規提交 - 如果需要,您將能夠恢復項目文件的更改,並且您應該注意,如果它不在更改的文件列表中,則不希望它發生更改。

+0

我完全打開這是用戶錯誤,但我檢查了pilElement.cpp的屬性。在常規選項卡下,它未被列爲「從構建中排除」。我想這意味着文件正在編譯。我只是通過去調試目錄並看到沒有pilElement.obj文件。有沒有辦法發送一個列表文件到編譯器類似於我在linux中使用的g ++ $( Matt

+0

我不是100%確定的,但許多版本的Visual Studio都有一個選項來使用Makefile來生成你的構建 - 個人而言,我發現最好,因爲我覺得它更透明。你甚至可以按照你的Linux makefile兼容。 –

相關問題