在項目開發過程中,遇到一個問題,一個工程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工程,編譯通過!!