【问题标题】:C++ Library Does Not Link in Release Configuration (VS2010)C++ 库在发布配置中不链接(VS2010)
【发布时间】:2010-12-13 06:21:32
【问题描述】:

我一直在尝试让静态库(.lib 文件)在 VS2010 中工作,并且我让它在调试配置中完美工作。但是,当我尝试在发布配置下编译它时,我收到错误 error C1083: Cannot open include file: 'Library.h': No such file or directory

这是当前的场景:

  • 我的桌面上名为Static Library 的文件夹中有一个.lib 文件和一个.h 文件。
  • 我已将 INCLUDE 环境变量指向上述文件夹(因此我可以使用 #include <Library.h>)。
  • 我的 LIB 环境变量也指向了上述文件夹。
  • 我已将.lib 文件添加为附加依赖项,并为附加依赖项设置目录。

我的测试程序源代码如下:

#include <iostream>
#include <Windows.h>

#include <Library.h>

int main()
{
    std::cout << Library::GetValue(); // Returns 123.
    Sleep(10000);
    return 0;
}

我可能做错了什么?

【问题讨论】:

  • 您是否设置了发布配置的编译器设置和路径? (请注意,您可以针对不同的配置进行不同的设置。)
  • @James 看起来这就是问题所在。有没有办法将两组配置设置链接在一起,还是我只需要记住为每个项目做两次?
  • 在项目配置对话框的顶部,您可以选择要修改设置的配置。一个选项是“所有配置”(或类似的东西)。

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


【解决方案1】:

不确定VS2010...但调试和发布模式可能有不同的库设置...

您可以通过指定以下内容来通知编译器通过代码链接

#pragma comment(lib, "library.lib") // no ; is needed

这将使它在调试和发布中都链接

【讨论】:

  • 确实,调试和发布配置设置似乎是独立的。另外,#pragma 是否也适用于其他编译器?
  • 我相信是的,还没有遇到过问题
猜你喜欢
  • 1970-01-01
  • 2011-03-05
  • 1970-01-01
  • 2014-07-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-03
相关资源
最近更新 更多