Pergunta

Estou vinculando SOIL em minha biblioteca, mas quando compilo recebo estes erros de vinculador:

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

Eu vinculei libSOIL.lib nas dependências adicionais.

Foi útil?

Solução

Os erros de símbolo não resolvidos, erro LNK2019, são provenientes dos símbolos em libgcc.lib ou de outra implementação de biblioteca padrão (consulte aqui para as Opções da Microsoft) não estão vinculados.alloca e sqrtf são funções de biblioteca padrão.

Se você não estiver vinculando a uma biblioteca padrão, vincule-a a uma adicionando-a ao caminho da biblioteca do vinculador.

A partir do aviso acima LNK4098, é mais provável que você esteja vinculando a uma biblioteca padrão, mas o vinculador não sabe qual carregar.

Os argumentos recomendados do LINKER para resolver esse problema (diga ao vinculador para escolher uma biblioteca padrão específica) são /NODEFAULTLIB:"MSVCRT" /NODEFAULTLIB:"LIBCMT.

Consulte os links a seguir para obter informações e recursos adicionais

Outras dicas

Corrigido o erro.

Embora esteja usando o VC2010, construí as bibliotecas do VC8.Em seguida, adicionei SOIL.lib em vez de libSOIL.lib.Os erros desapareceram.

Eu estava tendo o mesmo problema (usando Visual Studio 2013 com conjunto de ferramentas vc120), resolvi baixando a biblioteca SOIL do site oficial e em vez de renomear libSOIL.a para SOIL.lib Executei a solução VC8 dentro do zip oficial (que cria para você o SOIL.lib)´então copiei para o meu projeto e os problemas desapareceram.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top