#pragma comment(转)

  此文转自微软MSDN。注意这是在Windows上才有的,Linux上可没有。

#pragma comment( comment-type [,"commentstring"] )

  备注

  comment-type 是一个预定义的标识符(如下所述),它指定了注释记录的类型。 可选 commentstring 是一个字符串,它提供了某些注释类型的附加信息。 由于commentstring 是一个字符串,因此它遵循有关转义字符、嵌入的引号 (") 和串联的字符串的所有规则。

   1. compiler

  将编译器的名称和版本号置于对象文件中。 此注释记录将被链接器忽略。 如果为此记录类型提供 commentstring 参数,则编译器会生成警告。

   2. exestr

  将 commentstring 置于对象文件中。 在链接时,会将该字符串置于可执行文件内。 加载可执行文件时,不会将字符串加载到内存中;但是,可以使用在文件中查找可打印字符串的程序来找到它。 此注释记录类型的一个用途是将版本号或类似信息嵌入可执行文件中。
  在将来版本中,将弃用和移除 exestr;链接器不会处理注释记录。

   3. lib

  将库搜索记录置于对象文件中。 此注释类型必须带有包含您希望链接器搜索的库的名称(和可能的路径)的 commentstring 参数。 库名称遵循对象文件中的默认库搜索记录;链接器会搜索此库,这就像在命令行上对其命名一样,前提是未使用 /nodefaultlib 指定库。 可以将多个库搜索记录置于同一个源文件中;各个记录将以其在源文件中显示的顺序出现在对象文件中。
  如果默认库和添加的库的顺序很重要,则使用 /Zl 开关进行编译会阻止将默认库名称置于对象模块中。 然后,可使用另一个注释杂注在添加的库的后面插入默认库的名称。 与这些杂注一起列出的库将以其在源代码中的发现顺序出现在对象模块中。

   4. linker

  链接器选项置于对象文件中。 可以使用注释类型来指定链接器选项,而不是将其传递到命令行或在开发环境中指定它。 例如,可以指定 /include 选项来强制包含符号:
  #pragma comment(linker, "/include:__mySymbol")
  仅以下 (comment-type) 链接器选项可传递给链接器标识符:
    1)/DEFAULTLIB
    2)/EXPORT
    3)/INCLUDE
    4)/MANIFESTDEPENDENCY
    5)/MERGE
    6)/SECTION

   5. User — 用户

  将一般注释置于对象文件中。 commentstring 参数包含注释文本。 此注释记录将被链接器忽略。
  以下杂注会促使链接器在链接时搜索 EMAPI.LIB 库。 链接器首先在当前工作目录中搜索,然后在 LIB 环境变量指定的路径中搜索。
  #pragma comment( lib, "emapi" )
  以下杂注会促使编译器将其名称和版本号置于对象文件中:
  #pragma comment( compiler )
  #pragma comment( user, "Compiled on " __DATE__ " at " __TIME__ ) 
 
时间: 2024-10-10 23:40:07

#pragma comment(转)的相关文章

pragma comment

pragma指令简介 在编写程序的时候,我们经常要用到#pragma指令来设定编译器的状态或者是指示编译器完成一些特定的动作. 下面介绍了一下该指令的一些常用参数,希望对大家有所帮助! 一. message 参数. message 它能够在编译信息输出窗 口中输出相应的信息,这对于源代码信息的控制是非常重要的.其使用方法为: #pragma message(“消息文本”) 当编译器遇到这条指令时就在编译输出窗口中将消息文本打印出来. 当我们在程序中定义了许多宏来控制源代码版本的时候,我们自己有可

Additinal Dependencies和#pragma comment(lib,"*.lib")的分析

网上.一些书上也写道,这两种方式作用一样.其实仔细分析,它们两者还是有非常大的差异的. Additinal Dependencies和#pragma comment(lib,"*.lib")都是针对.lib文件的. 而.lib文件其实有两种. 一种是与DLL相关的,描述DLL中的函数入口地址等的,在这里两种方法作用一样. 一种是静态链接库,就是将静态库工程当前所有目标文件编译成一个二进制文件(通常是以.lib为扩展名).Additinal Dependencies和#pragma co

关于#pragma comment

#pragma comment(lib,"ws2_32.lib") #pragma comment(lib,"ws2_32.lib")表示连接Ws2_32.lib这个库.和在工程设置里写上链入Ws2_32.lib的效果一样,不过这种方法写的程序,别人在使用你的代码时就不用再设置工程settings了.告诉连接器连接的时候要找ws2_32.lib,这样你就不用再linker的lib设置里指定这个lib了. 比如: #include "Mwic_32.h&qu

#include 和 #pragma comment 的相对路径起点

#include 是以当前文件所在路径为当前目录 #pragma comment 是以当前工程所在路径为当前目录 #include "../../../../ThirdParty/Include/REG/DH/dhnetsdk.h" #pragma comment(lib, "../../ThirdParty/Lib/REG/DH/dhnetsdk.lib") 如上,大华车牌识别仪的头文件和链接文件都在项目解决方案目录下的ThirdParty目录,而相对引用时当前目

[C/C++]pragma comment的使用

该宏放置一个注释到对象文件或者可执行文件. #pragma comment( comment-type [,"commentstring"] ) comment-type是一个预定义的标识符,指定注释的类型,应该是compiler,exestr,lib,linker之一.commentstring是一个提供为comment-type提供附加信息的字符串,Remarks:1.compiler:放置编译器的版本或者名字到一个对象文件,该选项是被linker忽略的.2.exestr:在以后的

pragma comment的使用(转

蜗牛の狂奔笔记 对于蜗牛来说,狂奔虽不代表极速,但展现的却是一种拼尽全力的姿态........ #pragma 的使用 尽管 C 和 C++ 都已经有标准,但是几乎每个编译器 (广义,包含连接器等) 扩展一些 C/C++ 关键字. 合理地应用这些关键字,有时候能使我们的工作非常方便.下面随便说说 Visual C++ 中 #pragma 指示符的使用. 一.用#pragma导出DLL函数     传统的到出 DLL 函数的方法是使用模块定义文件 (.def),Visual C++ 提供了更简洁方

pragma comment的使用 pragma预处理指令详解

pragma comment的使用 pragma预处理指令详解 #pragma comment( comment-type [,"commentstring"] ) 该宏放置一个注释到对象文件或者可执行文件.comment-type是一个预定义的标识符,指定注释的类型,应该是compiler,exestr,lib,linker之一.commentstring是一个提供为comment-type提供附加信息的字符串,Remarks:1.compiler:放置编译器的版本或者名字到一个对象

pragma comment的使用

#pragma 的使用 我们经常用到的是#pragma comment(lib,"*.lib")这类的. pragma comment(lib,"Ws2_32.lib")表示链接Ws2_32.lib这个库. 和在工程设置里写上链入Ws2_32.lib的效果一样,不过这种方法写的 程序别人在使用你的代码的时候就不用再设置工程settings了 转自 https://www.cnblogs.com/guoxiaoqian/p/3984972.html 原文地址:http

#pragma预处理命令

#pragma预处理命令 #pragma可以说是C++中最复杂的预处理指令了,下面是最常用的几个#pragma指令: #pragma comment(lib,"XXX.lib") 表示链接XXX.lib这个库,和在工程设置里写上XXX.lib的效果一样. #pragma comment(linker,"/ENTRY:main_function") 表示指定链接器选项/ENTRY:main_function #pragma once 表示这个文件只被包含一次 #pra