【问题标题】:Pragma ignoring comment [-Werror=unknown-pragmas]Pragma 忽略注释 [-Werror=unknown-pragmas]
【发布时间】:2021-11-13 15:30:52
【问题描述】:

我正在尝试制作将从 FileVersionInfo 返回版本的函数, 到目前为止,我构建了函数,但是当我想包含 version.lib 时遇到问题

#pragma comment(lib, "version.lib")

我已尝试链接 libversion.a,类似这样的内容

#pragma comment(lib, "libversion.a")

但是,编译器再次像第一次一样返回错误

Pragma 忽略注释 [-Werror=unknown-pragmas]

我试过了,很多来自互联网的组合,我什至都记不住了。我正在使用 MinGW 编译器。 谢谢你的时间我appricitate :)

【问题讨论】:

  • 看起来 GCC 不支持那个特定的编译指示。
  • 使用-l 标志指定要链接的库。 See here。您可能需要使用-L 标志来通知链接器它需要搜索库的目录。
  • 这能回答你的问题吗? #pragma comment(lib, "xxx.lib") equivalent under Linux?(这个问题是关于 Linux 的,但本质上它似乎是关于 GCC 等价物)
  • 另请注意,unknown-pragmas 只是一个警告,但-Werror 将其提升为错误。您可以使用-Wno-error=unknown-pragmas 将该诊断降级为警告,或者使用-Wno-unknown-pragmas 将其完全静音。
  • @prapin "只有 MSVC 支持(我认为)从 C++ 源代码链接库的编译指示" - MSVC 不是唯一支持此功能的编译器。 C++Builder 也支持它。

标签: c++ pragma


【解决方案1】:

“这个从 C++ 源代码链接库的编译指示只被 MSVC 支持”

将编译器从 gcc/g++ 切换到 MSVC,这是唯一的解决方案 :(

【讨论】:

  • 对于 GCC,您需要将 -lversion 添加到链接器标志。
猜你喜欢
  • 1970-01-01
  • 2016-05-22
  • 2011-03-21
  • 2021-05-11
  • 2011-11-13
  • 2012-07-16
  • 2011-09-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多