在C中的Windows机器上进行开发时,为什么会出现include <windows.h>错误?

Tom*_*Tom 1 c windows gcc

我是C的新手,我正在尝试编译使用外部库的代码.因此,我按照这些步骤链接库.但是在第一个

gcc -c -Wall -Werror -fpic PICASO_SERIAL_4DLIBRARY.C
Run Code Online (Sandbox Code Playgroud)

我明白了

PICASO_SERIAL_4DLIBRARY.C:1:0: error: -fpic ignored for target (all code is position independent) [-Werror]
#include <windows.h>


cc1plus.exe: all warning being treated as errors
Run Code Online (Sandbox Code Playgroud)

另外,#上面有一个箭头.我试着用搜索引擎,但我只能发现这是一个Linux的问题,不是Windows一个(我开发在Windows现在)和我跟着这些步骤来安装gcc.编制其他小项目也是有效的.

任何人都知道,为什么这不起作用?

Dav*_*nan 5

提到#include <windows.h>是偶然的.这恰好是第一行代码.

编译器尝试将一行代码与错误相关联,以帮助您找到问题.但在这种情况下,代码是无关紧要的.错误发生在命令行中,无论代码是什么,您都会遇到错误.但是因为编译器被编码为始终将一行代码与错误相关联,所以它任意决定将指针指向第一行代码.

因为您使用-Werror,警告被视为错误.因此,编译器将有关忽略选项的警告转换为将位置无关代码发送到错误中.错误消息非常清楚地说明了这一点:

PICASO_SERIAL_4DLIBRARY.C:1:0:错误:-fpic被忽略为目标(所有代码都与位置无关)[ - 错误]

我怀疑你在阅读错误信息时上釉了,并把注意力转向突出显示的代码行.务必仔细阅读错误信息!

要解决该错误,-fpic请从命令行中删除该选项.