1

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 ビット プロジェクト (ソリューション プラットフォームで宣言されている)、および GLFW の 64 ビット バイナリ ダウンロードを使用しています。GLFW FAQ ページで説明されている「未解決の外部シンボル」のエラーは、リンクの問題が原因であると述べています。ただし、静的ライブラリのすべてを適切にリンクしたと思います。これが私がやったことです。

  1. Project>Properties>Configuration Properties>Linker>Input>Additional Dependencies の下に、GLFW.lib opengl32.lib と glu32.lib を追加しました。

  2. VC++ ディレクトリ>インクルード ディレクトリの下に C:\Users\Asher\glfw-2.7.7.bin.WIN64\glfw-2.7.7.bin.WIN64\include を追加しました。

  3. 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>

この件に関するこれまでのトピックは役に立たず、私はかなり立ち往生しています! この問題の解決策をいただければ幸いです。- Asher (私のファイル パスからわかるように =D)

4

1 に答える 1

1

他の人が同様の問題に出くわした場合に、そのような問題をデバッグする方法を簡単に説明するには:

最初に気付くのは、すべてのリンカ エラーが win32 ライブラリの関数を参照していることです。したがって、まずこれらの関数の 1 つを直接呼び出して、何かが変わるかどうかを確認します。

予想どおり、リンクに問題があったことを意味するものは何も変わりませんでしたuser32.lib。デフォルトの Visual Studio プロジェクトではこの問題は発生しないはずなので、これは完全なインストールに問題があるか、特定のソリューションのみに問題があることを意味します。新しいソリューションを作成することで問題は解決しましたが、そうでない場合は、Visual Studio を再インストールする必要がありました。

于 2013-01-22T05:11:53.730 に答える