土壤连接不正确

SOIL not linking correctly

本文关键字:不正确 连接      更新时间:2023-10-16

我正在我的库中链接SOIL,但当我编译时,我会收到以下链接器错误:

1> 链接:警告LNK4098:defaultlib"MSVCRT"与其他库的使用冲突;使用/NODEFAULTLIB:库1> libSOIL.lib(stb_image_aug.o):错误LNK2019:函数_stbi_zlib_decode_noheader_buffer中引用的未解析外部符号__alloca1> libSOIL.lib(image_help.o):错误LNK2019:函数_RGBE_to_RGBdivA2中引用的未解析外部符号_sqrtf

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

修复了错误。

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

未解析的符号错误,错误LNK2019,来自libgcc.lib中的符号或未链接到的另一个标准库实现(请参阅此处了解Microsoft选项)。alloca和sqrtf都是标准库函数。

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

从上面警告LNK4098中可以看出,您很可能正在链接到一个标准库,但链接器不知道要加载哪个库。

建议LINKER参数(告诉链接器选择特定的标准库)为/NODEFAULTLIB:"MSVCRT"/NODEFAULTLIB:"LIBCMT.

请参阅以下链接以获取更多信息和资源

  • 链接器工具警告LNK4098
  • 链接问题已解决
  • Visual C中的默认库++
  • 正在解决LNK4098:defaultlib"MSVCRT"与堆栈溢出问题冲突

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