2014-01-05 72 views
1

我最近閱讀過靜態庫和共享庫之間的區別,但是我用visual studio和GLUT製作的應用程序需要它們兩個。 Linker說,當我嘗試僅使用動態時,有未定義的參考。 Windows說我需要「glut32.dll」才能運行應用程序。也許我理解錯了什麼?我該如何使用靜態或共享庫?

+0

不知道你是什麼意思。但是,無論是靜態鏈接還是動態鏈接,庫鏈接都取決於您在程序中如何訪問它。您仍然可以靜態鏈接「.dll」。 – luk32

+0

正如我所理解的,我只能使用靜態庫來訪問其中包含所有庫的單個可執行文件,或者僅使用動態庫來獲取可執行文件,並且可以執行大量dll文件。 – ionagamed

+1

靜態鏈接對於不可用於DLL的庫是必需的,並且如果沒有.LIB版本的庫,則需要將其用作DLL。你不能讓一個人進入另一個(平凡)。您還需要一個DLL的「存根庫」(這基本上是應用程序和DLL之間的「掛鉤」或「連接」)。 –

回答

0

您所指的庫不包含任何實際的代碼,但它僅用於通過提供附加信息來加載dll。

的.h文件也只是提供了有關DLL的功能

使用的簽名信息看看:https://stackoverflow.com/a/11552463/1938163