[問題] OpenGL 連結問題

作者: shiburin (廢文製造機)   2020-09-15 21:26:17
開發平台(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):
作者: Unity (Unity3D)   2020-09-15 21:59:00
通常有這種錯誤應該是 dll 沒有正確 link 到
作者: Killercat (殺人貓™)   2020-09-15 22:00:00
library沒吃到啊 看你要靜態連還是動態連GCC要額外下link參數 wiki有寫啊https://i.imgur.com/qivYV78.png然後上面的path也要設對如果參數沒下錯 你glut install那步看看是否做錯了
作者: Lipraxde (Lipraxde)   2020-09-16 07:45:00
用 -Wl,--start-group、-Wl,--end-group 把 library 包起來看看Gcc 比較新的版本在找 symbol 的時候會按照 command line 下的順序去找,如果要鏈結的 symbol 被擺在後面的位置的話會找不到 Orz...
作者: eye5002003 (下一夜)   2020-09-16 09:02:00
不清楚你的狀況,印象中還需要gdi32這個lib
作者: nh60211as   2020-09-16 20:52:00
你還是先貼是什麼undefined reference吧看是沒有link到需要的還是link的順序錯誤剛剛測試大概是你的glut32.lib太舊,試過用mingw 32bit 9.2.0重編過可以link跟執行,不過跑道一半被防毒隔離我照這個網址重編的https://reurl.cc/XkLeED我猜是以前的mingw不用__stdcall就可以編給window用這我不太熟可能要別人解答

Links booklink

Contact Us: admin [ a t ] ucptt.com