簡體   English   中英

OpenGL GLFW:未定義對“glfwInit”的引用

[英]OpenGL GLFW: undefined reference to 'glfwInit'

我只是想讓 OpenGL 使用 GLFW 在我的機器(Windows 7 64 位)上工作。

我收到奇異的 linker 錯誤:

undefined reference to '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網站下載的Win32版本-Windows預編譯庫)
  • 包含文件夾包含一個名為 GLFW 的文件夾,其中包含 glfw3.h 和 glfw3native.h(來自下載的 GLFW - 包含文件夾)

我努力了:

最后幾個小時后想通了,我的問題。

將 libglfw3.a 文件保留在與 glfw3.dll 相同的目錄中(如果嘗試動態鏈接)會混淆鏈接器。 如果動態鏈接,請刪除它 - 您只需要 dll 和 /include 文件夾。

另外,添加

#define GLFW_DLL

如果與 DLL 鏈接,則在 include 語句上方。

g++ Test.cpp -lglfw -lGL -lm -lX11 -lpthread -lXi -lXrandr -ldl

應該管用

如果您將所有庫與 GCC 正確鏈接並且沒有出現錯誤,但它只是沒有定義像“glfwInit()”這樣的函數,請檢查您擁有的 MinGW 版本。 如果您使用 86x 版本的 MinGW,那么庫也必須是 86x。 同樣可能適用於 64x,但我還沒有檢查。

我一整天都在努力解決這個問題,這就是原因。 真的希望我能幫助別人。

我意識到這個問題在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網站下載的Win32版本-Windows預編譯的庫)
*包含文件夾包含一個名為GLFW的文件夾,其中包含glfw3.h和glfw3native.h(來自下載的GLFW-包含文件夾)

我試過了:
*使用GLFW的64位版本
*使用IDE(Eclipse,VS)
* GLFW未定義參考中的建議
* 什么是未定義參考/未解決的外部符號錯誤中的建議以及如何解決? (交換鏈接參數順序)
*在OpenGL中使用Eclipse CDT + MinGW + GLEW + GLFW的建議:未定義的引用
*嘗試使用CMake自己編譯庫,但看不到在此過程中創建的任何.a,.lib或.dll文件。

請讓我知道其他信息是否有幫助。

我不得不將 glfw 添加到目標鏈接庫

target_link_libraries( 可執行文件名 glfw )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM