将 SOIL.lib 与 GCC 一起使用 - 添加符号时出错:无法识别文件格式

the*_*oid 2 c++ opengl gcc soil

我最近一直在尝试将我的 Visual Studio OpenGL 项目转移到 VS Code,在 Windows 10 上通过 mingw-x64 使用 GCC。由于我对 C++ 编程相当陌生,因此我在这一切方面取得了稳步进展,并且我'遇到了一个我无法解决的错误。

使用以下命令构建时:

C:\Lib\mingw-w64\mingw64\bin\g++.exe -LC:/Lib/lib -IC:/Lib/include -g main.cpp -lglew32 -lglfw3 -lSOIL -lopengl32 -o build.exe
Run Code Online (Sandbox Code Playgroud)

我一直收到这个错误:

C:/Lib/lib/SOIL.lib: error adding symbols: File format not recognized
collect2.exe: error: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

我使用的 SOIL.lib 在 Visual Studio 中运行良好,并且 GCC 似乎对我使用的其他 .lib 文件没有任何抱怨。

似乎没有太多关于正在发生的事情的信息,我发现很多不同的人对不同的事情有相同的错误,而且我无法弄清楚这个神秘的错误消息实际上出了什么问题。有人可以帮忙吗?

Shr*_*ule 5

*.lib:添加符号时出错:无法识别文件格式。

是由您的链接器引起的问题。这背后的原因是该库属于其他架构,而不是您想要的架构。

这意味着您正在使用 mingw64\bin\g++.exe 编译器(mingw64 架构),并且库 SOIL.lib 是为您的主机系统架构构建的(这与 mingw64 架构明显不同)。

如果你想编译它,你必须获得为 mingw64 构建的 SOIL.lib。