[問題] OpenGL 連結問題

看板C_and_CPP (C/C++)作者 (希布凜)時間4年前 (2020/09/15 21:26), 4年前編輯推噓1(1019)
留言20則, 5人參與, 4年前最新討論串1/1
開發平台(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

09/15 21:59, 4年前 , 1F
通常有這種錯誤應該是 dll 沒有正確 link 到
09/15 21:59, 1F
請問要如何解決這個問題呢? 我只是照著操作細節不太懂

09/15 22:00, 4年前 , 2F
library沒吃到啊 看你要靜態連還是動態連
09/15 22:00, 2F

09/15 23:54, 4年前 , 3F
GCC要額外下link參數 wiki有寫啊
09/15 23:54, 3F

09/15 23:54, 4年前 , 4F

09/15 23:55, 4年前 , 5F
然後上面的path也要設對
09/15 23:55, 5F

09/15 23:56, 4年前 , 6F
如果參數沒下錯 你glut install那步看看是否做錯了
09/15 23:56, 6F
你好,我下的指令是 g++ -o hello hello.cpp glut32.lib -lopengl32 -lglu32 .lib 檔跟 hello.cpp 同一個資料夾 .dll 檔則放在 System32 glee 我下載時沒有,而且似乎也非必要所以就沒有加入 剛才檢查了一次還是找不出問題在哪裡

09/16 07:45, 4年前 , 7F
用 -Wl,--start-group、-Wl,--end-group 把 library 包
09/16 07:45, 7F

09/16 07:45, 4年前 , 8F
起來看看
09/16 07:45, 8F

09/16 07:47, 4年前 , 9F
Gcc 比較新的版本在找 symbol 的時候會按照 command li
09/16 07:47, 9F

09/16 07:47, 4年前 , 10F
ne 下的順序去找,如果要鏈結的 symbol 被擺在後面的位
09/16 07:47, 10F

09/16 07:47, 4年前 , 11F
置的話會找不到 Orz...
09/16 07:47, 11F

09/16 09:02, 4年前 , 12F
不清楚你的狀況,印象中還需要gdi32這個lib
09/16 09:02, 12F
我試過兩位的做法了但還是報出 undefined reference...

09/16 20:52, 4年前 , 13F
你還是先貼是什麼undefined reference吧
09/16 20:52, 13F

09/16 20:52, 4年前 , 14F
看是沒有link到需要的還是link的順序錯誤
09/16 20:52, 14F
"glutInit"...等函數

09/16 23:49, 4年前 , 15F
剛剛測試大概是你的glut32.lib太舊,試過
09/16 23:49, 15F

09/16 23:50, 4年前 , 16F
用mingw 32bit 9.2.0重編過可以link跟執行,不過跑道
09/16 23:50, 16F

09/16 23:50, 4年前 , 17F
一半被防毒隔離
09/16 23:50, 17F

09/16 23:51, 4年前 , 18F
我照這個網址重編的https://reurl.cc/XkLeED
09/16 23:51, 18F

09/16 23:53, 4年前 , 19F
我猜是以前的mingw不用__stdcall就可以編給window用
09/16 23:53, 19F

09/16 23:53, 4年前 , 20F
這我不太熟可能要別人解答
09/16 23:53, 20F
可能真的如同你說的是 glut32 太舊了,所以我改用 freeglut 了 ※ 編輯: shiburin (140.112.235.104 臺灣), 09/17/2020 23:05:04
文章代碼(AID): #1VOC3_0E (C_and_CPP)
文章代碼(AID): #1VOC3_0E (C_and_CPP)