解決c1xx fatal error C1083 Cannot open source file


在項目開發過程中,遇到一個問題,一個工程B導入另外一個工程A的生產代碼,出現這個錯誤,最后查閱資料發現是文件路徑太深,導致文件路徑字符超過了217字符。

寫了一個測試Demo來驗證:

一、新建Win32控制台工程TestFilePath(A工程):

  新建一個空類Test, Test.h 、Test.cpp 放在一個很深目錄:

D:\Project\VS2010\Test\TestFilePath\TestFilePath\123456789123456789123456789123456789123456789\123456789123456789123456789123456789123456789\123456789123456789123456789123456789123456789\12345678912345678912345678912345678\12\Test.h

 

 

 

二、在TestPath平級目錄新建一個TestEmptyWin32控制台工程(B工程)

 

三、TestEmpty工程導入 TestPath工程的Test類,導入完成后編譯報錯

四、用Nodepad++打開TestEmpty工程文件

 <ClCompile Include="..\..\TestFilePath\TestFilePath\123456789123456789123456789123456789123456789\123456789123456789123456789123456789123456789\123456789123456789123456789123456789123456789\12345678912345678912345678912345678\12\Test.cpp" />

Include 雙引號包含的字符個數為217,編譯TestEmpty工程失敗!

五、修改TestFilePath工程Test.h文件路勁減少一個字符。TestEmpty工程中重新導入Test類文件

<ClCompile Include="..\..\TestFilePath\TestFilePath\123456789123456789123456789123456789123456789\123456789123456789123456789123456789123456789\123456789123456789123456789123456789123456789\12345678912345678912345678912345678\1\Test.cpp" />

Include 雙引號包含的字符個數為216

 

 六、重新編譯TestEmpty工程,編譯通過!!

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM