链接C ++项目中的静态库(OpenGL与SOIL)

时间:2013-10-04 18:15:30

标签: c++ c opengl visual-studio-2012

我使用OpenGL构建了一个带有.obj网格加载器的简单图形引擎。现在我想为我的网格添加一些纹理。我打算使用.dds文件来存储它们。由于其简单性,我选择了SOIL库进行加载。

到目前为止,我只使用动态dll链接作为我的外部(SFML,Glew,OpenGL32)。另一方面,SOIL是一个静态库。我已经看到在项目解决方案中构建的静态库,显然将em添加到.exe并且无需添加dll。我还读到通过在链接器中添加引用来链接静态库的另一种方法(我使用VC ++ 2012作为我的DevEnv)。但是,经过几个小时的搜索后,我找不到合适的教程来解决这个问题。

我将SOIL发行版中的“src”目录重命名为“include”(只是为了保持一致)并将其添加到Additional Include Directories,将lib目录的路径添加到Linker(存储了libSOIL.a文件)和将libSOIL.a添加到其他依赖项。它给了我lnk2019错误的SOIL_load_OGL_texture。我将libSOIL.a重命名为SOIL.lib,并在链接器中调整它 - 同样的错误仍然存​​在。我继续编译提供的VS项目并在“VS9”和“VS8”项目文件夹中构建SOIL.lib。链接任何一个都是失败。

在我绝望的最后时刻,我使用了extern“C”,认为SOIL是一个C lib。这完全是愚蠢的:)我继续读到人们使用g ++链接他们的静态库,我不知道如何使用。

有人可以提供一个简单的逐步算法,介绍如何将像SOIL这样的静态库链接到VS2012 c ++项目。如果你有时间,关于这个主题的视频绝对棒极了! 谢谢大家帮忙!

P.S。如果我的一次尝试看起来对你来说是合理的,那么由于我编译(x64),lnk2019会不会弹出?

0 个答案:

没有答案