【问题标题】:VC++ directories acting strangeVC++ 目录表现得很奇怪
【发布时间】:2012-02-06 18:00:50
【问题描述】:

最近,我遇到了一些奇怪的链接器错误。

我被告知有两种使用库的方法:

通过

Project Properties > VC++ Directories > Include Directories
Project Properties > VC++ Directories > Library Directories

或通过

Project Properties > C/C++  > General > Additional Include Directories
Project Properties > Linker > General > Additional Library Directories
Project Properties > Linker > Input   > Additional Dependencies

最近,有时当我使用 VC++ 目录方式时,我收到一个链接器错误,指出某些函数没有定义。当我将函数定义所在的库文件添加到附加依赖项时,它突然找到了它。 但是如果你使用 VC++ 目录,通常你根本不应该使用 Additional Dependencies,对吧?

这种情况现在已经发生了多次,让我感到非常困惑。它在过去的项目中运行良好,但现在不行了。有时 VC++ 方式甚至可以在另一台 PC 上工作,但不能在我的电脑上工作。 我一直在使用 VS2010,现在仍在使用 VS2010。

有人知道发生了什么吗?

【问题讨论】:

  • VS 在 SMB 上工作时似乎表现出非常不寻常的行为。是否有任何正在使用的目录在网络共享上?
  • @Charles 不,但是谢谢。

标签: c++ visual-studio-2010 visual-c++ linker


【解决方案1】:

即使您指定了其他包含目录,Visual Studio 也不会在您构建项目时自动尝试链接所有存在的库文件。您必须采取将库文件名添加到附加依赖项列表的附加步骤。额外的包含目录仅有助于避免将整个文件路径写入额外的依赖项列表中。

修改附加依赖项列表的替代方法是使用#pragma 指令。具体来说,使用

    #pragma comment("[lib file name]")

这将指示链接器在您的构建中链接该文件。

【讨论】:

  • 这就澄清了。谢谢!但是,我在这里谈论的是 VC++ 目录。这些被称为“包含目录”,没有“附加”。要么你把我的问题理解错了,要么你打错了。
猜你喜欢
  • 2013-02-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-12
  • 2012-11-11
  • 1970-01-01
  • 1970-01-01
  • 2023-03-22
相关资源
最近更新 更多