2011-03-30 101 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

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

    我和我自己的图书馆项目有类似的问题,并没有太多的文件在这里。