Visual Studio静态库编译器硬编码相对路径

时间:2011-03-30 23:43:00

标签: c++ visual-studio-2008 static-linking

我认为我的问题是Visual Studio静态库链接器硬编码相对路径,以后在从不同目录链接到该静态库时会导致问题。

这是我正在尝试做的事情:

  • 我有一个库dll,称之为base.dll。
  • 我有一个链接到这个dll的应用程序:application.exe。为了编写这个应用程序的单元测试,我将应用程序编译为静态库:application.lib。
  • 我有一个测试项目,编译与application.lib链接的testing.dll。
  • 在最后一步中,链接失败了LNK1104(无法打开文件),因为它使用的是application.exe的相对路径,而不是testing.dll。在此过程中,Testing.dll已成功链接到base.dll。

    有什么建议吗?

    2 个答案:

    答案 0 :(得分:0)

    尝试在每个项目的“库目录”对话框中选中“从父项目或项目默认值继承”。

    我在自己的图书馆项目中遇到了类似的问题,而且没有太多关于此的文档。

    答案 1 :(得分:0)

    当我构建静态库时,诀窍是不与base.dll链接,并且在构建testing.dll时只链接它。