標籤:
在調試 Visual Studio 212 程式時,經常有一些動態連結程式庫(即 dll 檔案)需要載入到工程裡,這樣才能依賴第三方庫進行程式調試。
這些動態連結程式庫,往往都是測試版本或是開發中的版本,或者會有若干個版本;這個時候,如果直接把 dll 所在目錄加到 PATH 裡,則會有潛在衝突的危險;如果直接拷貝到 Visual Studio 的目錄下,假如測試工程太多,每次有新版本的動態連結程式庫更新時,你需要更新若干次,拷貝、粘貼苦不堪言。
在開發過程中,究竟怎樣來讓 Visual Studio 連結這些 lib 及 dll 檔案會比較好呢?
總體上來說,有幾種方法可以改變 Visual Studio 的環境變數設定:
- 直接添加到系統的 PATH 變數裡:
這個方法最簡單,也最直接,但是壞處是會影響全域的 PATH 設定,尤其是你包含著大量測試用的 dll 時。
- 在 Visual Studio 全域設定裡,把 dll 所在目錄添加到 PATH 裡:
通過 Visual Studio 菜單 ==> 工具 ==> 選項 ==> 項目和解決方案 ==> VC++目錄,在下拉框裡選擇"可執行檔",然後把 dll 所在路徑添加進去。(編輯功能已被否決)
- 直接把所有 dll 拷貝到 Visual Studio 工程目錄下,或是拷貝到產生可執行檔的檔案夾(預設情況下是 Debug 或 Release 目錄)下:
這個方法也很簡單,但是當你有若干個工程時,你每次更新 SDK 及其 dll 檔案,你就要把所有的工程都更新,這個不符合檔案唯一性的工程性準則。
- 在偵錯工具時,讓 Visual Studio 幫你切換當前工作目錄到 dll 相應的目錄下:
在 Visual Studio ==> Project ==> Properties ==> Select Configuration ==> Configuration Properties ==> Debugging ==> Working directory 裡填上 dll 所在目錄,這樣當在偵錯工具時,Visual Studio 會把當前工作目錄切換到這個目錄下,從而會自動讀取本目錄下的 dll 檔案。
這個方法的優點很明顯,簡單!副作用也很明顯,在你切換了當前工作目錄後,你可能會找不到程式的設定檔,在程式裡寫的諸如"./config.ini"全部都找不到了;另外,你要把所有的 dll 都放到這個工作目錄裡,否則一樣會提示說找不到 xxx.dll 的問題。
- 最後一個方法,也是我認為最好的一個方法,在 Visual Studio 工程屬性裡把一個目錄臨時添加到 PATH 環境變數裡:
MSDN 上也有類似的介紹:How to: Set Environment Variables for Projects,方法很簡單,在 "工程屬性" ==> "調試" ==> "環境"裡,添加類似如下所示的內容:
PATH=%PATH%;$(TargetDir)\DLLS;(後面加上分號)
這樣就可以把 $(TargetDir)\DLLS 臨時添加到該工程所屬的系統 PATH 裡。
大家可以根據項目的實際情況,靈活選用以上方法。
註:
http://www.cnblogs.com/lidabo/archive/2012/07/12/2587567.html
本文撰寫時參考了 StackOverflow 上的討論話題:How do I set a path in visual studio?
Visual Studio 2012環境變數、工作目錄、vc++目錄、 命令等 的配置和作用