說幾個掉進大坑的慘痛經歷
1.編譯一個C++的工程,工程中要用到cmake工具,而cmake安裝在C:Program Files (x86)cmake2.8(程式預設安裝時,安裝到這個目錄是很正常不是嗎)。然而問題來了,工程怎麼編不過,報一個很詭異的異常:
Microsoft.CppCommon targets(151, 5):error MSB6006:”cmd.exe” exited with code 3.
後來我把cmake安裝目錄的整個資料夾拷到了C:Program Filescmake2.8,工程編譯正常。但就因為這一個問題,半天的時間一下就沒了……
2.由於工程配製的需要,要寫一個指令碼,指令碼的功能很簡單,就把一個檔案從A目錄拷貝(複製)到B目錄。於是很自然地就寫了這樣一行命令:
1 |
copy /y D:C++WorkspaceProjectAconfig.txt D:C++WorkspaceProjectB |
很簡單吧,沒有邏輯錯誤吧!但結果呢?結果這樣的:
我瞅了一眼又一眼,config.txt這個檔案確實是存在的,而且路徑也是正確的。
然後我進行了一個嘗試:
然後我直接把config.txt複製一份到D:config.txt,再進行了一次嘗試:
Ok,它成功了!
作為一個C++程式設計師,取一個“C++Workspace“這樣資料夾作為工作目錄也是可以理解的吧!但結果卻是花了我半個多小時解決上面這個問題。於是我不得不把”C++Workspace“改成了”CppWorkspace“,然後寫這樣一行命令:
1 |
copy /y D:CppWorkspaceProjectAconfig.txt D:CppWorkspaceProjectB |
Ok,一切正常!
3.還有的還有,我就不一一舉例了,總之關於路徑問題,坑很多……
如何跳過大坑?
那如何避免掉進大坑呢?大體總結以下幾點,可依次循著這個思路逐步排查:
1. 檢查寫的路徑是否正確;
2. 檢查要操作的目錄、檔案是否具有許可權,如讀寫許可權(Linux系統或類Unix系統中還有執行許可權);
3. 檢查路徑中是否包含特殊的字元,如’(‘、’)’、’’、’ ‘、’+’、’-‘、’:’、’%’、’&’、’#’、’$’、’!’、’|’、’*’、’@’、’?’、’,’等;
4. 注意絕對路徑與相對路徑的問題。
當你怎麼也搞不定一個問題,並且邏輯也沒有錯誤時,就不要悶頭苦幹了!按照上面的思路檢查一下是不是路徑的問題吧。