涉及到的配置: 項目編譯時使用的中間目錄; 項目鏈接的輸出目錄; 項目編譯結束后,拷貝生成的 dll 和 lib 到指定目錄; 項目編譯結束后,拷貝需要的 dll 到輸出目錄; 設置項目的工作目錄; 設置調試時執行的 exe 和工作目錄; 配置時使用到的一些宏: ConfigurationName 配置名字,通常是Debug或者Release IntDir 編譯器使用的中間目錄,產出obj文件 OutDir 鏈接器使用的輸出目錄 ProjectDir 項目目錄 ProjectName 項目名字 SolutionDir 解決方案目錄 TargetDir 目標輸出文件所在的目錄 TargetExt 目標輸出的擴展名 TargetFileName 目標輸出文件名,包括擴展名 TargetName 目標輸出名,不包括擴展名 TargetPath 目標輸出文件的全路徑名 下面以 Sticker 為例展示目錄結構設置的過程: Sticker 目錄結構: Sticker +-- 3rd (第三方庫) | +-- dll | | +-- debug | | +-- release | +-- lib | | +-- debug | | +-- release | +-- include | +-- src (源碼) | +-- Sticker | | +-- Sticker 項目的代碼 | +-- StickerLibrary | | +-- StickerLibrary 項目的代碼 | +-- Sticker.sln | +-- xar (腳本) | +-- Sticker | +-- ... | +-- doc (文檔) | +-- bin (可執行文件) | +-- debug | +-- release | +-- temp (中間目錄) +-- compile | +-- debug | +-- release +-- link +-- debug +-- release 1. 創建文件夾 Sticker\src 2. 創建一個空的解決方案 Sticker.sln ,放入 Sticker\src 中 3. 創建項目 Sticker 4. 屬性 --> 配置 設定為“所有配置”,這樣可以同時設定 debug\release 下的配置 5. 配置屬性 --> 常規 --> 中間目錄: $(SolutionDir)..\temp\compile\$(ConfigurationName) 6. 配置屬性 --> 常規 --> 輸出目錄: $(SolutionDir)..\temp\link\$(ConfigurationName) 7. 配置屬性 --> C/C++ --> 常規 --> 附加包含目錄: "$(SolutionDir)..\3rd\include" 8. 配置屬性 --> 鏈接器 --> 常規 --> 附加庫目錄: "$(SolutionDir)..\3rd\lib\$(ConfigurationName)" 9. 配置屬性 --> 鏈接器 --> 輸入 --> 附加依賴項: xxx1.lib xxx2.lib xxx3.lib 10. 配置屬性 --> 生成事件 --> 生成后事件 --> 命令行: md $(SolutionDir)..\bin\$(ConfigurationName) copy $(TargetPath) $(SolutionDir)..\bin\$(ConfigurationName) copy $(SolutionDir)..\3rd\dll\$(ConfigurationName) $(SolutionDir)..\bin\$(ConfigurationName) 11. 配置屬性 --> 調試 --> 命令: $(SolutionDir)..\bin\$(ConfigurationName)\$(TargetFileName) 12. 配置屬性 --> 調試 --> 工作目錄: $(SolutionDir)..\bin\$(ConfigurationName)\