我需要在我的項目中使用SOIL lib。如何將靜態庫(SOIL)鏈接到visual studio 2010中的項目?
我在我的源文件中包含SOIL.h和libSOIL.a(將其重命名爲libSOIL.lib)。
我已經將頭文件作爲現有項目添加到頭文件中,並將頭文件包含在我需要的另一個頭文件中。
我也試過了: 項目屬性> Linker> Input> Additional Dependencies,然後在下拉菜單中點擊「< Edit ..>」並鍵入libSOIL.lib。
但我得到這些錯誤:
看看下面(更新錯誤)
我該怎麼辦?
編輯#1:
這是我在做什麼:
#include "gl/glut.h"
#include "SOIL.h"
我有兩個文件在我的源目錄。
沒有任何從SOIL編寫的代碼生成成功。
有了這個代碼:
/* load an image file directly as a new OpenGL texture */
GLuint grass_texture = SOIL_load_OGL_texture
(
"original.bmp",
SOIL_LOAD_AUTO,
SOIL_CREATE_NEW_ID,
SOIL_FLAG_MIPMAPS | SOIL_FLAG_INVERT_Y | SOIL_FLAG_NTSC_SAFE_RGB | SOIL_FLAG_COMPRESS_TO_DXT
);
/* check for an error during the load process */
if(0 == grass_texture)
{
printf("SOIL loading error: '%s'\n", SOIL_last_result());
}
我收到此錯誤:
Error 1 error LNK2019: unresolved external symbol __alloca referenced in function _stbi_zlib_decode_noheader_buffer working_dir\libSOIL.lib(stb_image_aug.o) ProjectName
Error 2 error LNK2019: unresolved external symbol _sqrtf referenced in function _RGBE_to_RGBdivA2 working_dir\libSOIL.lib(image_helper.o) ProjectName
Error 3 error LNK1120: 2 unresolved externals working_dir\Debug\ProjectName.exe ProjectName
也許這會幫助你:http://stackoverflow.com/questions/9629349/soil-not-linking-correctly – mfc
@mfc:我用新的錯誤代碼更新了我的問題。這是否改變你的回覆? – Chris
LNKxxxx錯誤表明錯誤來自鏈接器,代碼編譯正常,但鏈接器無法找到外部庫中的所有二進制部分(代碼和變量)。也可能是LIB文件的路徑。上面鏈接中的文章表示,他使用「SOIL.lib」而不是「libSOIL.lib」並解決了問題。 – mfc