Visual Studio 11 GLFW外部符号错误
Visual Studio 11 GLFW external symbol error
我使用的基本代码是http://www.glfw.org/documentation.html
我得到这个输出:
1>------ Build started: Project: ConsoleApplication1, Configuration: Debug Win32 ------
1> Quelle.cpp
1>Quelle.obj : error LNK2019: unresolved external symbol _glfwInit referenced in function _main
1>Quelle.obj : error LNK2019: unresolved external symbol _glfwTerminate referenced in function _main
1>Quelle.obj : error LNK2019: unresolved external symbol _glfwCreateWindow referenced in function _main
1>Quelle.obj : error LNK2019: unresolved external symbol _glfwWindowShouldClose referenced in function _main
1>Quelle.obj : error LNK2019: unresolved external symbol _glfwPollEvents referenced in function _main
1>Quelle.obj : error LNK2019: unresolved external symbol _glfwMakeContextCurrent referenced in function _main
1>Quelle.obj : error LNK2019: unresolved external symbol _glfwSwapBuffers referenced in function _main
1>C:UsersMICHAELdocumentsvisual studio 2012ProjectsConsoleApplication1DebugConsoleApplication1.exe : fatal error LNK1120: 7 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
glfw3.h在VC/include目录中。我还将glfw3.lib添加到了VC/lib文件夹中,并将glfw3-lib添加为链接器输入的附加依赖项,但我仍然会收到这些错误。
知道为什么吗?我使用了预编译的二进制文件(支持MSVC2012和64x)http://www.glfw.org/download.html
好的,经过大量的尝试和错误,我解决了它。
- 使用32位二进制文件
- 右键单击项目->属性->VC++
- 包含目录:C:\Users\MICHAEL\Desktop\glfw-3.0.3.bin.WIN32\Include$(IncludePath)
- 库目录:C:\Users\MICHAEL\Desktop\glfw-3.0.3.bin.WIN32\lib-msvc110$(LibraryPath)
- 链接器->输入->附加依赖项添加
- glfw3.lib和opengl32.lib
这为我解决了问题。
如果有人打算使用64位版本的GLFW:,这是我的解决方案
- 从github获取GFLW源代码
- 使用CMake生成64位Visual Studio sln
- 使用正确的设置配置glfw:
在动态库的情况下:
项目->配置->C/C++->代码生成->运行库->多线程调试DLL(/MDd)
在静态库的情况下:
项目->配置->C/C++->代码生成->运行库->多线程调试(/MTd)
-
构建glfw项目。
-
在您的项目中链接以下二进制文件:
glfw3.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;glfw3.lib
-
同时使用相应的/MDd或/MTd编译器标志配置您的项目,并将其配置为在x64上生成。
-
构建。
确保根据您使用的版本将您的平台设置为x64或32。我尝试获得64位平台,但一直遇到问题,直到我注意到我在Visual Studio中的活动平台是win32。转到配置管理器并确保其设置为64
我没有必要的声誉来评论(Michael)接受的答案,但我想注意的是,我让他的方法起作用了。我需要纠正的是将include和库目录切换到IncludePath/LibraryPath的其余部分之前,而不是之后。
除了将glfw3.lib和opengl32.lib添加到链接器依赖项之外,我还添加了gdi32.lib。这解决了我在使用glfw时在VS2019上的链接器问题。
#pragma comment(lib, "gdi32.lib")
#pragma comment(lib, "opengl32.lib")
#pragma comment(lib, "glfw3.lib")
- 在C++中使用内联方法时出现未定义的符号错误
- 当 lib 已添加到其他依赖项时,如何在 VS 中调试未解析的外部符号错误
- 函数指针给我"重新声明为不同类型的符号"错误
- "byte":使用Crypto++和Windows SDK时出现不明确的符号错误
- 函数路径追加上未解决的外部符号错误
- 作为成员的静态类模板实例会导致未解析的外部符号错误
- C++ XCODE ld:找不到体系结构x86_64 clang 的符号:错误:链接器命令失败,退出代码为 1(使用 -
- 共享库中使用"使用命名空间"定义的符号错误
- 在FreesWitch中使用AWS C SDK加载模块时未定义的符号错误
- 在 Mac 上C++编译代码时处理“dyld:惰性符号绑定失败:找不到符号”错误
- C++编译错误LNK2019:未解决的外部符号错误
- VTK / ITK/ QT - 未解决的外部符号错误 (LNK2001)
- QT创建者:简单程序未解决的外部符号和外部符号错误
- C++编译错误:ld:找不到体系结构x86_64 clang 的符号:错误:链接器命令失败,退出代码为 1(使用 -v
- 标准::字符串::空的未定义符号错误;Mac OS High Sierra 上的 c++ 标准方法链接错误
- ld:找不到体系结构x86_64 clang 的符号:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
- 由于使用未签名的INT,因此在Variadic模板C 上未解决的外部符号错误
- OSX MOJAVE -LD:架构X86_64 clang找不到符号:错误:链接器命令失败,出口代码1
- 使用从WINRT网格类派生的抽象类时,Casttobase未解决的外部符号错误
- LD:架构x86_64 clang找不到符号:错误:链接器命令失败,出口代码1(使用-v to See