首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

OpenGL 紅寶書第八版首個範例編譯錯誤:LNK2019 無法解析 LoadShaders

     編輯:程式設計綜合問答

錯誤資訊

error LNK2019: 無法解析的外部符號 _LoadShaders,函數 init 中被引用
fatal error LNK1120: 1 個無法解析的外部命令

原因

LoadShaders 為書本提供的輔助函數,定義於 LoadShaders.cpp/.h,並非 OpenGL 標準庫。專案僅包含標頭檔與靜態庫(opengl32.lib, glu32.lib),缺少該輔助源檔編譯連結。

解決步驟

  1. 從書本官網/ GitHub 下載完整範例碼,找到 LoadShaders.cpp、LoadShaders.h、vgl.h 等輔助檔案。
  2. 將其加入專案:
    右鍵專案 → Add → Existing Item → 選擇 LoadShaders.cpp。
    或在 CMakeLists.txt 中 add_executable(main main.cpp LoadShaders.cpp)。
  3. 確保 #include "LoadShaders.h" 路徑正確。
  4. 重新建置。

補充:庫依賴設定

專案屬性 → Linker → Input → Additional Dependencies 添加:

opengl32.lib; glu32.lib; legacy_stdio_definitions.lib; (若用 freeglut) freeglut.lib;

/NODEFAULTLIB:LIBCMTD 警告通常因運行時庫不匹配(MT/MD),統一設定為 Multi-threaded Debug DLL (/MDd) 即可。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved