2017-04-17 14 views
1

私はこの質問が、StackOverflowおよび他のサイトで多くの回を尋ねられたことに気付きました。これらのリソースを見直した後、私はまだ迷っています。OpenGL GLFW: 'glfwInit'への未定義の参照

GLFWで私のマシン(Windows 7 64-bit)でOpenGLを動作させようとしています。

私が抱えている問題は他の多くの人たちと同じです:私は特異なリンカエラーが発生しています: "glfwInit 'への未定義の参照。"私がコンパイルしようとしているコードは、可能な限り簡単です(Test.cppファイル内)。

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 

追加情報:
*コンパイルする++グラムを使用した(MINGW32)
* libフォルダが含まglfw3.dll、libglfw3私がコンパイルしようとするために、簡単なMakefileを使用しています

#include <iostream> 
#include <GLFW/glfw3.h> 
int main() 
{ 
    std::cout << "hello world" << std::endl; 
    glfwInit(); 
    return 0; 
} 

.a、libglfw3dll.a(GLFWウェブサイトからダウンロードしたWin32版 - Windowsプリコンパイル済みライブラリ)
* includeフォルダにはglfw3.hとglfw3native.hを含むGLFWという名前のフォルダが含まれています(ダウンロードしたGLFW - includeフォルダから)

私が試してみました:
*のIDE(Eclipseの、VS)を使用* GLFW
から64ビット版を使用して
*で提案GLFW Undefined References
*(リンク引数の順番を入れ替える)What is an undefined reference/unresolved external symbol error and how do I fix it?で提案
*提案のOpenGL with Eclipse CDT + MinGW + GLEW + GLFW: Undefined References
* CMakeを使用してライブラリをコンパイルしようとしましたが、プロセスで作成された.a、.lib、または.dllファイルは表示されません。

追加情報が役立つかどうかお知らせください。

+1

私の提案は、部分パス(-L./lib)を使用する代わりに、完全なパスを使用することです。 – Amadeus

+0

@Amadeus:提案に感謝します。それを打ちましたが、何も変わっていないようです(リンカがすべてのライブラリを正しく見つけることができるようです - glfw3が見つからないと別のエラーが出ます)。 –

答えて

2

最終的に私の問題が分かりましたMANY時間後です。

libglfw3.aファイルをglfw3.dllと同じディレクトリに残すと(ダイナミックリンクを試みると)リンカが混乱します。動的にリンクする場合は削除してください。必要なのはdllと/ includeフォルダだけです。 DLLとリンクする場合

また、include文の上

#define GLFW_DLL 

を追加します。

関連する問題