我無法在Visual Studio 2013 C++項目中鏈接靜態庫。Visual Studio 2013 C++鏈接靜態庫glew,虛擬機上的glfw
- 我下載了最新的GLEW-1.11.0-win32和GLFW-3.1.1.bin.WIN32
設定的路徑,包括目錄 (項目屬性> C/C++ 「附加包含目錄」)
C:\Users\User\Documents\Visual Studio 2013\Projects\OpenGL\OpenGL\Common
添加路徑LIB文件 (項目屬性>鏈接>常規 「附加庫目錄」)
C:\Users\User\Documents\Visual Studio 2013\Projects\OpenGL\OpenGL\Common\Libs
添加庫名 (項目屬性>鏈接>輸入 「附加依賴」)
glew32.lib glfw3.lib
定義preprocesor GLEW_STATIC(當我刪除此纔看得到)
(project Properties > C/C++ > Preprocessor "Preprocessor Definitions")
當我建立我的項目以下錯誤發生:
Error 1 error LNK2001: unresolved external symbol _glewExperimental C:\Users\User\documents\visual studio 2013\Projects\OpenGL\OpenGL\Source.obj OpenGL
Error 2 error LNK1120: 1 unresolved externals C:\Users\User\documents\visual studio 2013\Projects\OpenGL\Debug\OpenGL.exe OpenGL
當我想這COMPLE
#include<Windows.h>
#include<GL\glew.h>
#include<GLFW\glfw3.h>
#include<iostream>
GLFWwindow * window;
using namespace std;
int main()
{
glewExperimental = TRUE;
GLenum error = glewInit();
if (error != GLEW_OK)
{
cout << "Error!" << endl;
}
system("pause");
return 0;
}
的Windows 8.1當前虛擬機(VirtualBox的)和Mirosoft的Visual Studio 2013
我做錯了嗎?在此論壇的其他主題中,此解決方案可正常工作。
當我從目錄中刪除這兩個庫時,我得到了同樣的錯誤,所以可能Visual沒有看到這兩個庫。但路徑設置正確。包含路徑作品,所有頭文件都可以通過intelsense查看。
看着[文檔在這裏](http://glew.sourceforge.net/install.html),在我看來,'glew32.lib'不是實際的靜態庫,而只是一個導入庫'glew32.dll'。該文件似乎意味着您需要實際構建源代碼以便靜態鏈接到它。 – bogdan
你知道該怎麼做嗎?每個教程都是關於鏈接自己的dll庫。我發現了這個[link](http://blog.nuclex-games.com/2012/03/how-to-consume-dlls-in-visual-cxx/comment-page-1/),但它沒有起作用。任何想法? – Szczepan
我從GLEW網站下載了二進制包,發現在'lib \ Release \ Win32'目錄下,'glew32.lib'旁邊還有'glew32s.lib'。我有一個偷偷的懷疑,那個's'是你正在尋找的實際的靜態庫。因此,在「附加依賴關係」中只進行這種更改並再次嘗試(在您的設置中,其他一切似乎都很好,而且我在前面的評論中引用的文檔似乎已過時 - [此其他頁面](http:// glew .sourceforge.net/build.html)表示,預編譯的靜態庫應該包含在二進制Windows包中)。 – bogdan