PRB:#pragma comment(lib...) 仅可以指定库

文章翻译 文章翻译
文章编号: 153901 - 查看本文应用于的产品
本文的发布号曾为 CHS153901
展开全部 | 关闭全部

本文内容

症状

注释 pragma 可以允许用户在目标文件或可执行文件中插入注释。lib 指定符允许用户向链接器传递该注释,以在使用对象模块时指定其它的链接库。有些用户使用 lib 注释 pragma 以添加链接器选项和库名,例如:
   #pragma comment(lib, "MSVCRT -VERBOSE")
在 Visual C++ 2.x 中,代码行照原样将字符串传递给链接器,结果导致编译时附加了 /VERBOSE 链接器选项和 MSVCRT.LIB 库。但是,这种情况并不仅限于上述方式。编译器不会将注释字符串放在引号内,而会用空格分隔文本。

在 Visual C++ 4.0、4.1、和 4.2 中,编译器将注释字符串正确地放在引号内,因而导致上述代码产生以下错误:
LINK :fatal error LNK1104:cannot open file "MSVCRT -VERBOSE.lib"

解决方案

使用下列新的 pragma 来指定链接器选项:
#pragma comment(linker, "<linker options>")

状态

这种现象是设计使然。

更多信息

示例代码



// Compile options needed:none

// test.c

#pragma comment(lib,"MYLIBRARY -VERBOSE")

void main(void)
{
}

参考

有关 /VERBOSE 的其它信息,请参阅产品文档。

属性

文章编号: 153901 - 最后修改: 2005年7月5日 - 修订: 1.1
这篇文章中的信息适用于:
  • Microsoft Visual C++, 32-bit Learning Edition 6.0
  • Microsoft Visual C++ 4.1 Subscription
  • Microsoft Visual C++ 6.0 企业版
  • Microsoft Visual C++ 6.0 专业版
  • Microsoft Visual C++ 5.0 企业版
  • Microsoft Visual C++ 5.0 专业版
  • Microsoft Visual C++ 4.2 企业版
  • Microsoft Visual C++ 4.2 专业版
  • Microsoft Visual C++ 4.0 标准版
关键字:?
kbvc400 kbvc410 kbvc420 kbvc500 kbvc600 kbdss kbprb kbusage kbcompiler KB153901
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com