SOIL没有正确链接

时间:2012-03-09 05:26:21

标签: c++ opengl glfw soil

我在我的库中链接SOIL,但是当我编译时,我得到了这些链接器错误:

1>LINK : warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library
1>libSOIL.lib(stb_image_aug.o) : error LNK2019: unresolved external symbol __alloca referenced in function _stbi_zlib_decode_noheader_buffer
1>libSOIL.lib(image_helper.o) : error LNK2019: unresolved external symbol _sqrtf referenced in function _RGBE_to_RGBdivA2

我确实在附加依赖项中链接了libSOIL.lib。

3 个答案:

答案 0 :(得分:7)

修正了错误。

虽然我使用的是VC2010,但我构建了VC8库。然后我添加了SOIL.lib而不是libSOIL.lib。错误消失了。

答案 1 :(得分:5)

未解决的符号错误,错误LNK2019,来自libgcc.lib中的符号或其他未链接到的标准库实现(请参阅here表示Microsoft选项)。 alloca和sqrtf都是标准库函数。

如果您没有链接到标准库,请通过将其添加到链接器库路径来链接到标准库。

从警告上面的警告LNK4098,您更有可能链接到标准库,但链接器不知道要加载哪个。

推荐LINKER参数使这个问题消失(告诉链接器选择一个特定的标准库)/ NODEFAULTLIB:“MSVCRT”/ NODEFAULTLIB:“LIBCMT。

有关其他信息和资源,请参阅以下链接

答案 2 :(得分:4)

我遇到了同样的问题(使用带有vc120工具集的Visual Studio 2013),我解决了从官方网站下载SOIL库而不是将libSOIL.a重命名为SOIL.lib我运行了VC8解决方案在官方zip中(创建SOIL.lib)然后我将其复制到我的项目中,问题就消失了。