看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: Win10, Linux, ...) Win10 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出) GCC 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) OpenGL 問題(Question): 我按照底下網址的作法操作 https://www.khronos.org/opengl/wiki/MinGW 但是在編譯時冒出一堆 undefined reference 餵入的資料(Input): 預期的正確結果(Expected Output): 認得 OpenGL 的函數 錯誤結果(Wrong Output): 程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔) #include<GL/glut.h> int main(int argc, char *argv[]) { glutInit(&argc, argv); ...下略 return 0; } 補充說明(Supplement): -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.235.104 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1600176383.A.00E.html
Unity: 通常有這種錯誤應該是 dll 沒有正確 link 到 09/15 21:59
請問要如何解決這個問題呢? 我只是照著操作細節不太懂
Killercat: library沒吃到啊 看你要靜態連還是動態連 09/15 22:00
Killercat: GCC要額外下link參數 wiki有寫啊 09/15 23:54
Killercat: https://i.imgur.com/qivYV78.png 09/15 23:54
Killercat: 然後上面的path也要設對 09/15 23:55
Killercat: 如果參數沒下錯 你glut install那步看看是否做錯了 09/15 23:56
你好,我下的指令是 g++ -o hello hello.cpp glut32.lib -lopengl32 -lglu32 .lib 檔跟 hello.cpp 同一個資料夾 .dll 檔則放在 System32 glee 我下載時沒有,而且似乎也非必要所以就沒有加入 剛才檢查了一次還是找不出問題在哪裡
Lipraxde: 用 -Wl,--start-group、-Wl,--end-group 把 library 包 09/16 07:45
Lipraxde: 起來看看 09/16 07:45
Lipraxde: Gcc 比較新的版本在找 symbol 的時候會按照 command li 09/16 07:47
Lipraxde: ne 下的順序去找,如果要鏈結的 symbol 被擺在後面的位 09/16 07:47
Lipraxde: 置的話會找不到 Orz... 09/16 07:47
eye5002003: 不清楚你的狀況,印象中還需要gdi32這個lib 09/16 09:02
我試過兩位的做法了但還是報出 undefined reference...
nh60211as: 你還是先貼是什麼undefined reference吧 09/16 20:52
nh60211as: 看是沒有link到需要的還是link的順序錯誤 09/16 20:52
"glutInit"...等函數
nh60211as: 剛剛測試大概是你的glut32.lib太舊,試過 09/16 23:49
nh60211as: 用mingw 32bit 9.2.0重編過可以link跟執行,不過跑道 09/16 23:50
nh60211as: 一半被防毒隔離 09/16 23:50
nh60211as: 我照這個網址重編的https://reurl.cc/XkLeED 09/16 23:51
nh60211as: 我猜是以前的mingw不用__stdcall就可以編給window用 09/16 23:53
nh60211as: 這我不太熟可能要別人解答 09/16 23:53
可能真的如同你說的是 glut32 太舊了,所以我改用 freeglut 了 ※ 編輯: shiburin (140.112.235.104 臺灣), 09/17/2020 23:05:04