MinGW使用#pragma comment链接version.lib报unknown-pragmas错误如何解决
报错原因
#pragma comment(lib, "...") 是微软MSVC编译器专属的链接指示语法,MinGW使用的GCC/Clang编译器完全不支持该指令,因此无论你指定的库名是否正确,都会触发「未知pragma」的警告。如果你的编译参数开启了-Werror将警告视为错误,就会直接中断编译。
即便你屏蔽该警告,这条指令也不会生效,后续链接阶段还是会报FileVersionInfo相关函数未定义的错误。你需要先删除代码中所有#pragma comment(lib, ...)相关语句,再通过以下方法配置链接:
解决方法
- 方案1:直接在编译命令末尾添加链接参数
在原来的MinGW编译命令后加上-lversion即可,GCC会自动匹配MinGW自带的libversion.a库完成链接。
示例命令:gcc your_code.c -o output.exe -lversion - 方案2:通过构建工具/IDE配置
若使用CMake管理项目,在CMakeLists.txt中添加配置:
若使用Dev-C++、Code::Blocks等带GUI的IDE,在项目设置的「链接器选项」「附加依赖项」输入框中直接填写target_link_libraries(你的目标名称 PRIVATE version)version即可。
内容的提问来源于stack exchange,提问作者gmijo47
相关产品推荐
相关产品推荐

