Я сталкиваюсь с большой проблемой со связью GLFW. Я видел несколько сообщений на этом и других сайтах, где рассматривались такие сообщения об ошибках, но когда я пытаюсь исправить ошибки, они остаются такими же.
В частности, ошибки:
Error 1 error LNK2019: unresolved external symbol __imp_SystemParametersInfoA referenced in function _glfwPlatformInit C:\Users\Asher\documents\visual studio 2012\Projects\Procedural Terrain\Procedural Terrain\GLFW.lib(win32_init.obj) Procedural Terrain
Error 2 error LNK2001: unresolved external symbol __imp_SystemParametersInfoA C:\Users\Asher\documents\visual studio 2012\Projects\Procedural Terrain\Procedural Terrain\GLFW.lib(win32_window.obj) Procedural Terrain
Error 3 error LNK2001: unresolved external symbol __imp_SystemParametersInfoA C:\Users\Asher\documents\visual studio 2012\Projects\Procedural Terrain\Procedural Terrain\GLFW.lib(win32_enable.obj) Procedural Terrain
Error 4 error LNK2019: unresolved external symbol __imp_DispatchMessageA referenced in function _glfwPlatformPollEvents C:\Users\Asher\documents\visual studio 2012\Projects\Procedural Terrain\Procedural Terrain\GLFW.lib(win32_window.obj) Procedural Terrain
Error 5 error LNK2019: unresolved external symbol __imp_PeekMessageA referenced in function _glfwPlatformPollEvents C:\Users\Asher\documents\visual studio 2012\Projects\Procedural Terrain\Procedural Terrain\GLFW.lib(win32_window.obj) Procedural Terrain
Error 6 error LNK2019: unresolved external symbol __imp_GetMessageTime referenced in function translateKey C:\Users\Asher\documents\visual studio 2012\Projects\Procedural Terrain\Procedural Terrain\GLFW.lib(win32_window.obj) Procedural Terrain
Error 7 error LNK2019: unresolved external symbol __imp_WaitMessage referenced in function _glfwPlatformWaitEvents C:\Users\Asher\documents\visual studio 2012\Projects\Procedural Terrain\Procedural Terrain\GLFW.lib(win32_window.obj) Procedural Terrain
Error 8 error LNK2019: unresolved external symbol __imp_DefWindowProcA referenced in function windowProc C:\Users\Asher\documents\visual studio 2012\Projects\Procedural Terrain\Procedural Terrain\GLFW.lib(win32_window.obj) Procedural Terrain
Error 9 error LNK2019: unresolved external symbol __imp_PostQuitMessage referenced in function windowProc C:\Users\Asher\documents\visual studio 2012\Projects\Procedural Terrain\Procedural Terrain\GLFW.lib(win32_window.obj) Procedural Terrain
Error 10 error LNK2019: unresolved external symbol __imp_RegisterClassA referenced in function registerWindowClass C:\Users\Asher\documents\visual studio 2012\Projects\Procedural Terrain\Procedural Terrain\GLFW.lib(win32_window.obj) Procedural Terrain
Error 11 error LNK2019: unresolved external symbol __imp_UnregisterClassA referenced in function _glfwPlatformCloseWindow C:\Users\Asher\documents\visual studio 2012\Projects\Procedural Terrain\Procedural Terrain\GLFW.lib(win32_window.obj) Procedural Terrain
Error 12 error LNK2019: unresolved external symbol __imp_CreateWindowExA referenced in function createWindow C:\Users\Asher\documents\visual studio 2012\Projects\Procedural Terrain\Procedural Terrain\GLFW.lib(win32_window.obj) Procedural Terrain
Error 13 error LNK2019: unresolved external symbol __imp_DestroyWindow referenced in function destroyWindow C:\Users\Asher\documents\visual studio 2012\Projects\Procedural Terrain\Procedural Terrain\GLFW.lib(win32_window.obj) Procedural Terrain
Error 14 error LNK2019: unresolved external symbol __imp_ShowWindow referenced in function _glfwPlatformIconifyWindow C:\Users\Asher\documents\visual studio 2012\Projects\Procedural Terrain\Procedural Terrain\GLFW.lib(win32_window.obj) Procedural Terrain
Error 15 error LNK2019: unresolved external symbol __imp_SetWindowPos referenced in function _glfwPlatformOpenWindow C:\Users\Asher\documents\visual studio 2012\Projects\Procedural Terrain\Procedural Terrain\GLFW.lib(win32_window.obj) Procedural Terrain
Error 16 error LNK2019: unresolved external symbol __imp_BringWindowToTop referenced in function setForegroundWindow C:\Users\Asher\documents\visual studio 2012\Projects\Procedural Terrain\Procedural Terrain\GLFW.lib(win32_window.obj) Procedural Terrain
Error 17 error LNK2019: unresolved external symbol __imp_CharUpperA referenced in function translateKey C:\Users\Asher\documents\visual studio 2012\Projects\Procedural Terrain\Procedural Terrain\GLFW.lib(win32_window.obj) Procedural Terrain
Error 18 error LNK2019: unresolved external symbol __imp_CharUpperW referenced in function translateKey C:\Users\Asher\documents\visual studio 2012\Projects\Procedural Terrain\Procedural Terrain\GLFW.lib(win32_window.obj) Procedural Terrain
Error 19 error LNK2019: unresolved external symbol __imp_SetFocus referenced in function _glfwPlatformOpenWindow C:\Users\Asher\documents\visual studio 2012\Projects\Procedural Terrain\Procedural Terrain\GLFW.lib(win32_window.obj) Procedural Terrain
Error 20 error LNK2019: unresolved external symbol __imp_GetAsyncKeyState referenced in function _glfwPlatformPollEvents C:\Users\Asher\documents\visual studio 2012\Projects\Procedural Terrain\Procedural Terrain\GLFW.lib(win32_window.obj) Procedural Terrain
Error 21 error LNK2019: unresolved external symbol __imp_GetKeyboardState referenced in function translateChar C:\Users\Asher\documents\visual studio 2012\Projects\Procedural Terrain\Procedural Terrain\GLFW.lib(win32_window.obj) Procedural Terrain
Error 22 error LNK2019: unresolved external symbol __imp_ToAscii referenced in function translateChar C:\Users\Asher\documents\visual studio 2012\Projects\Procedural Terrain\Procedural Terrain\GLFW.lib(win32_window.obj) Procedural Terrain
Error 23 error LNK2019: unresolved external symbol __imp_ToUnicode referenced in function translateChar C:\Users\Asher\documents\visual studio 2012\Projects\Procedural Terrain\Procedural Terrain\GLFW.lib(win32_window.obj) Procedural Terrain
Error 24 error LNK2019: unresolved external symbol __imp_MapVirtualKeyA referenced in function translateKey C:\Users\Asher\documents\visual studio 2012\Projects\Procedural Terrain\Procedural Terrain\GLFW.lib(win32_window.obj) Procedural Terrain
Error 25 error LNK2019: unresolved external symbol __imp_SetCapture referenced in function _glfwPlatformHideMouseCursor C:\Users\Asher\documents\visual studio 2012\Projects\Procedural Terrain\Procedural Terrain\GLFW.lib(win32_window.obj) Procedural Terrain
Error 26 error LNK2019: unresolved external symbol __imp_ReleaseCapture referenced in function _glfwPlatformShowMouseCursor C:\Users\Asher\documents\visual studio 2012\Projects\Procedural Terrain\Procedural Terrain\GLFW.lib(win32_window.obj) Procedural Terrain
Error 27 error LNK2019: unresolved external symbol __imp_GetForegroundWindow referenced in function setForegroundWindow C:\Users\Asher\documents\visual studio 2012\Projects\Procedural Terrain\Procedural Terrain\GLFW.lib(win32_window.obj) Procedural Terrain
Вплоть до ошибки 50, а потом …
Error 51 error LNK1120: 46 unresolved externals C:\Users\Asher\documents\visual studio 2012\Projects\Procedural Terrain\x64\Debug\Procedural Terrain.exe Procedural Terrain
Я вижу эти ошибки и замечаю «win32» в конце. Я использую 64-битную систему, 64-битный проект (как заявлено платформой решения) и 64-битную двоичную загрузку для GLFW.
Ошибка для «неразрешенного внешнего символа», как описано на странице часто задаваемых вопросов GLFW, говорит о том, что причиной этого являются проблемы со связыванием. Тем не менее, я считаю, что связал все правильно для статической библиотеки.
Вот что я сделал.
В Project> Properties> Configuration Properties> Linker> Input> Дополнительные зависимости я добавил
GLFW.lib
opengl32.lib и
glu32.lib
Под VC ++ Каталоги> Включить каталоги я добавил C: \ Users \ Asher \ glfw-2.7.7.bin.WIN64 \ glfw-2.7.7.bin.WIN64 \ include.
Под каталогами VC ++> Каталоги библиотек я добавил C: \ Users \ Asher \ glfw-2.7.7.bin.WIN64 \ glfw-2.7.7.bin.WIN64 \ lib-msvc110.
Я не трогал dll, так как предпочел бы статическую библиотеку. Также вот мой код
#include "Header.h"
using namespace std;
int main(int argc, char **argv){
//Initializes non-window dependent sources.
if (!glfwInit())
{
cout<< "Failed to initialize GLFW";
return -1;
}
//Sets window parameters
glfwOpenWindow(0, 0, 0, 0, 0,
0, 8, 0, GLFW_FULLSCREEN);
//Window name
glfwSetWindowTitle("The GLFW Window");
//Terminates GLFW.
glfwTerminate();
return 0;
}
Заголовок содержит
#include <IOstream>
#include <GL\glfw.h>
Никаких тем на эту тему пока не было никакой помощи, и я застрял!
Решение этой проблемы будет высоко ценится.
— Ашер (как вы можете сказать из моего пути к файлам = D)
Чтобы дать краткий обзор, как отладить такую проблему, если другие люди сталкиваются с подобными проблемами:
Первое, что вы заметите, это то, что все ошибки компоновщика относятся к функциям в библиотеке win32. Поэтому сначала мы пытаемся вызвать одну из этих функций напрямую и посмотреть, изменит ли она что-либо.
Как и ожидалось, это ничего не изменило, что означало, что у нас были проблемы со связыванием user32.lib
, Поскольку в проекте Visual Studio по умолчанию такой проблемы быть не должно, это означало, что при полной установке возникла проблема, или только конкретное решение. Создание нового решения решило проблему, но в противном случае следовало бы переустановить Visual Studio.
Других решений пока нет …