この質問は、StackOverflowや他のサイトで何度も尋ねられていることを理解しています。これらのリソースを確認した後、私はまだ途方に暮れています。
GLFWを使用して自分のマシン(Windows 7 64ビット)でOpenGLを動作させようとしているだけです。
私が抱えている問題は、他の多くの問題と同じです。「 'glfwInit'への未定義の参照」という単一のリンカーエラーが発生します。私がコンパイルしようとしているコードは、可能な限り単純です(Test.cppファイル内)。
#include <iostream>
#include <GLFW/glfw3.h>
int main()
{
std::cout << "hello world" << std::endl;
glfwInit();
return 0;
}
単純なMakefileを使用してコンパイルを試みています。
Test: Test.o
g++ -o Test -L./lib -lglew32 -lglfw3 -lopengl32 -lglu32 -lgdi32 Test.o
Test.o: Test.cpp
g++ -I./include -c Test.cpp
追加情報:
* g ++を使用したコンパイル(MinGW32)
* libフォルダーには、glfw3.dll、libglfw3.a、およびlibglfw3dll.a(GLFW WebサイトからダウンロードされたWin32バージョン-Windowsプリコンパイル済みライブラリ)が含まれています。
*インクルードフォルダーには、glfw3.hとglfw3native.h(ダウンロードしたGLFWから-インクルードフォルダー)を含むGLFWという名前のフォルダーが含まれています。
私が試してみました:
* GLFWの64ビットバージョンを使用
* IDEの使用(Eclipse、VS)
* GLFW Undefined References の提案
*の提案 未定義の参照/未解決の外部シンボルエラーとは何ですか?それを修正するにはどうすればよいですか? (リンク引数の順序を入れ替える)
*提案 OpenGLとEclipse CDT + MinGW + GLEW + GLFW:未定義の参照
* CMakeを使用してライブラリを自分でコンパイルしようとしましたが、プロセスで作成された.a、.lib、または.dllファイルが表示されません。
追加情報が役立つかどうか教えてください。
すべてのライブラリをGCCに正しくリンクし、エラーが表示されないが、「glfwInit()」のような関数が定義されていない場合は、使用しているMinGWのバージョンを確認してください。 MinGWの86xバージョンを使用する場合、ライブラリも86xである必要があります。同じことがおそらく64xにも当てはまりますが、私はまだチェックしていません。
私は一日中その問題を解決しようとしていました、そしてこれが理由でした。私がそれで誰かを助けたことを本当に願っています。
コードブロックでも同じ問題が発生し、最初にlibglfw3dll.aをリンクしてから、libglfw3.aをリンクすることで解決しました。それ以外の場合は、未定義の参照エラーが発生します