2011-03-30 91 views
1

我認爲我的問題是Visual Studio靜態庫鏈接器硬編碼相對路徑,並且這會在以後從不同目錄鏈接到靜態庫時導致問題。Visual Studio靜態庫編譯器硬編碼相對路徑

下面是我想要做的:

  • 我有一個庫的DLL,稱之爲base.dll。
  • 我有一個應用程序,鏈接到這個DLL:application.exe。爲了爲此應用程序編寫單元測試,我將該應用程序編譯爲一個靜態庫:application.lib。
  • 我有一個測試項目,編譯testing.dll,鏈接到application.lib。
  • 在最後一步,鏈接失敗LNK1104(無法打開文件),因爲它使用的是application.exe的相對路徑,而不是testing.dll。在此過程中,Testing.dll已經成功鏈接到base.dll。

    有什麼建議嗎?

    +2

    所有這些文件存在的實際完整錯誤消息和路徑可能有助於解答問題。現在,我甚至無法知道鏈接器說哪個文件無法打開。 – 2011-03-31 00:06:58

    回答

    0

    訣竅是,當我構建靜態庫時,不會鏈接到base.dll,並且在構建testing.dll時僅與它鏈接。

    0

    嘗試在每個項目的「庫目錄」對話框中選中「從父項目或項目默認值繼承」。

    我和我自己的圖書館項目有類似的問題,並沒有太多的文件在這裏。