如何以Visual Studio 2015可以实际看到的方式链接库?
这是我的文件夹的一些屏幕截图: glfw3,glfw3/include/glfw/,glfw3/lib
我试图将这些文件夹链接到Visual Studio中的“ vc ++目录=>包含/库目录”下,例如:include,library
还可以在链接器=>输入=> additional dependencies
下直接将其链接到我的项目在我看来,一切似乎都是正确的(这就是我正在学习的教程Learnopengl.com中的样子)
注意:我也使用GLAD库做同样的事情,该库具有一个.c文件,该文件直接放入我的源代码中,并且头文件的链接方式与GLFW相同。
但尽管尝试运行此代码:
#include <glad/glad.h>
#include <GLFW/glfw3.h>
int main() {
glfwInit();
return 0;
}
它将始终返回此错误或类似错误:
1>------ Build started: Project: opengl_test, Configuration: Debug Win32 ------
1> main.cpp
1>main.obj : error LNK2019: unresolved external symbol _glfwInit referenced in function _main
1>C:\Users\Honza\Desktop\C++ programs\lib\glfw3\lib\glfw3.lib : warning LNK4272: library machine type 'x64' conflicts with target machine type 'X86'
1>c:\users\honza\documents\visual studio 2015\Projects\opengl_test\Debug\opengl_test.exe : fatal error LNK1120: 1 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
我猜我链接库的方式有问题。如果愿意,我愿意重新安装Visual Studio,请给我一些可能的解决方案。我想开始学习opengl,但是所有这些带有链接库的爵士乐使我感到沮丧和困惑。
编辑:这里的问题是我使用的是64位GLFW二进制文件而不是32位二进制文件,并以32位进行编译。我已经解决了这个问题,现在出现了更多错误:
1>------ Build started: Project: opengl_test, Configuration: Debug Win32 ------
1>libglfw3.a(init.c.obj) : error LNK2019: unresolved external symbol ___chkstk_ms referenced in function __glfwInputError
1>libglfw3.a(init.c.obj) : error LNK2019: unresolved external symbol _vsnprintf referenced in function __glfwInputError
1>MSVCRTD.lib(vsnprintf.obj) : error LNK2001: unresolved external symbol _vsnprintf
1>libglfw3.a(context.c.obj) : error LNK2019: unresolved external symbol _sscanf referenced in function __glfwRefreshContextAttribs
1>MSVCRTD.lib(vsnprintf.obj) : error LNK2001: unresolved external symbol __vsnprintf
1>C:\Users\Honza\Documents\Visual Studio 2015\Projects\opengl_test\Debug\opengl_test.exe : fatal error LNK1120: 4 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
答案 0 :(得分:0)
您写道,您试图链接“这些文件夹”,而实际上,需要2件单独的物品才能使用静态库中的函数。
在链接器下=>输入=>其他依赖项,放置gfw3.lib文件的完整路径。
答案 1 :(得分:0)
在跟随learningopengl.com时,我遇到了同样的问题,问题是您需要再次使用 cmake 重建 glfw库,
但是这一次,当您选择Visual Studio 2015或该项目的生成器时,还必须选择:生成器的可选平台-> x64
您可以在 Visual Studio 中构建glfw ,并且出现的平台是 x64