This question already has answers here:
What is an undefined reference/unresolved external symbol error and how do I fix it?
(36个答案)
已关闭6年。
我正在我的库中链接SOIL,但是在编译时出现以下链接器错误:
1> LINK:警告LNK4098:defaultlib'MSVCRT'与其他库的使用发生冲突;使用/NODEFAULTLIB:library
1> libSOIL.lib(stb_image_aug.o):错误LNK2019:函数_stbi_zlib_decode_noheader_buffer中引用的未解析的外部符号__alloca
1> libSOIL.lib(image_helper.o):错误LNK2019:函数_RGBE_to_RGBdivA2中引用的未解析的外部符号_sqrtf
我确实在附加依赖项中链接了libSOIL.lib。 Linker Tools Warning LNK4098 Linking problems SOLVED Default Libraries in Visual C++ Resolving LNK4098: defaultlib 'MSVCRT' conflicts with Stack Overflow Question
(36个答案)
已关闭6年。
我正在我的库中链接SOIL,但是在编译时出现以下链接器错误:
1> LINK:警告LNK4098:defaultlib'MSVCRT'与其他库的使用发生冲突;使用/NODEFAULTLIB:library
1> libSOIL.lib(stb_image_aug.o):错误LNK2019:函数_stbi_zlib_decode_noheader_buffer中引用的未解析的外部符号__alloca
1> libSOIL.lib(image_helper.o):错误LNK2019:函数_RGBE_to_RGBdivA2中引用的未解析的外部符号_sqrtf
我确实在附加依赖项中链接了libSOIL.lib。
最佳答案
Unresolved 符号错误,即错误 LNK2019,来自未链接到的 libgcc.lib 或其他标准库实现(参见 here 以获取 Microsoft 选项)中的符号。 alloca 和 sqrtf 都是标准库函数。
如果您没有链接到标准库,则通过将其添加到链接器库路径来链接到一个库。
从上面警告 LNK4098 的警告来看,您更有可能链接到标准库,但链接器不知道要加载哪个库。
推荐 LINKER 参数来消除这个问题(告诉链接器选择一个特定的标准库)是/NODEFAULTLIB:"MSVCRT"/NODEFAULTLIB:"LIBCMT。
有关其他信息和资源,请参阅以下链接
关于c++ - 土壤连接不正确,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9629349/
10-10 15:02