0

Windows 8 64 ビットを搭載した新しいラップトップを購入したばかりで、Visual Studio 2012 を使用しています。以前の PC にインストールしたのと同じように、通常の手順で 3d パーティ ライブラリをインストールしました。

  1. freeglut、glew、glfw、glut、sdlをダウンロード
  2. ヘッダーを「C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include」にコピーします
  3. ライブラリを「C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\lib」にコピーします。
  4. dll を「C:\Windows\SysWOW64」にコピーします。

次に、他のPCで開発していたプロジェクトをダウンロードしました(重要な場合は、Windows 8 32ビットで開発されました)。コンパイルできませんでした。コンパイラは、次のリンク エラーをスローしました。

Error 1 error LNK2001: unresolved external symbol __imp__glDrawArrays@12  - about 50 of these 

Error 63 error LNK2019: unresolved external symbol __imp__glClear@4 - again about 50 of these

プロジェクトは私の古い PC で完全に動作しています。

簡単な新しいプロジェクトを作成しようとしました: http://pastebin.com/GfEieL6f

以下のライブラリをリンクしました (Properties->Linker->Input->Additional Dependencies)

opengl32.lib
glut32.lib
glu32.lib

そして再びコンパイルされず、同じリンク エラーが発生します。

Error 1 error LNK2019: unresolved external symbol __imp__glBegin@4 referenced in function "void __cdecl drawcube(void)" (?drawcube@@YAXXZ) P:\OpenGL_Setup\OpenGL_Setup\opengl_setup.obj

Error 2 error LNK2019: unresolved external symbol __imp__glClear@4 referenced in function "void __cdecl drawcube(void)" (?drawcube@@YAXXZ) P:\OpenGL_Setup\OpenGL_Setup\opengl_setup.obj

Error 3 error LNK2019: unresolved external symbol __imp__glClearColor@16 referenced in function _main P:\OpenGL_Setup\OpenGL_Setup\opengl_setup.obj

Error 4 error LNK2019: unresolved external symbol __imp__glColor3f@12 referenced in function "void __cdecl drawcube(void)" (?drawcube@@YAXXZ) P:\OpenGL_Setup\OpenGL_Setup\opengl_setup.obj

Error 5 error LNK2019: unresolved external symbol __imp__glEnd@0 referenced in function "void __cdecl drawcube(void)" (?drawcube@@YAXXZ) P:\OpenGL_Setup\OpenGL_Setup\opengl_setup.obj

Error 6 error LNK2019: unresolved external symbol __imp__glFlush@0 referenced in function "void __cdecl drawcube(void)" (?drawcube@@YAXXZ) P:\OpenGL_Setup\OpenGL_Setup\opengl_setup.obj

Error 7 error LNK2019: unresolved external symbol __imp__glLoadIdentity@0 referenced in function _main P:\OpenGL_Setup\OpenGL_Setup\opengl_setup.obj

Error 8 error LNK2019: unresolved external symbol __imp__glMatrixMode@4 referenced in function "void __cdecl drawcube(void)" (?drawcube@@YAXXZ) P:\OpenGL_Setup\OpenGL_Setup\opengl_setup.obj

Error 9 error LNK2019: unresolved external symbol __imp__glOrtho@48 referenced in function _main P:\OpenGL_Setup\OpenGL_Setup\opengl_setup.obj

Error 10 error LNK2019: unresolved external symbol __imp__glRotatef@16 referenced in function "void __cdecl drawcube(void)" (?drawcube@@YAXXZ) P:\OpenGL_Setup\OpenGL_Setup\opengl_setup.obj

Error 11 error LNK2019: unresolved external symbol __imp__glVertex3iv@4 referenced in function "void __cdecl drawcube(void)" (?drawcube@@YAXXZ) P:\OpenGL_Setup\OpenGL_Setup\opengl_setup.obj

何か不足しているかどうかわかりませんが、アイデアを教えてもらえますか?

PP: 簡単なプログラムを修正して実行できましたが、古いプロジェクトを実行できません。プラットフォームの変更による問題でしょうか?どうすれば修正できますか?

4

1 に答える 1

2
  1. libコンパイラディレクトリにファイルを追加しないでください。代わりに、別のライブラリ検索パスをプロジェクトに追加してください。

  2. VC++ 2012 およびプロジェクトのビルド設定と互換性のないライブラリ ファイルをダウンロードした可能性があります。ネイティブ コードでは、x86、x64 などを混在させることはできません。静的ライブラリは、OS ではなく、プロジェクトのビット数に一致する必要があります。また、Microsoft は、ライブラリ ファイル形式と、ライブラリで使用されるランタイム ライブラリ コンポーネントも変更/拡張しているため、お使いのバージョンの VC++ 用に設計されたライブラリ ファイルを入手する必要があります。

于 2013-06-06T16:01:49.013 に答える