Pergunta

Sempre que incluem impulso no meu projeto eu recebo um milhão desses avisos. Alguém sabe como posso me livrar das advertências?

../ depende \ boost / config / abi_prefix.hpp (19) : C4103 aviso: 'Depende \ boost \ config \ abi_prefix.hpp' : Alinhamento mudado após incluindo cabeçalho, pode ser devido a falta #pragma Pack (POP)

Eu sei que posso fazer um #pragma desativar o aviso, mas eu gostaria de saber a razão para estas advertências.

Foi útil?

Solução

A razão é que o impulso não push / pop esses pragmas em cada arquivo que os dados precisam ser embalado. Eles #include um arquivo separado que faz o push (abi_prefix.hpp), e depois outro (abo_suffix.hp) depois que faz o pop.

Isso lhes permite reutilizar o mesmo código #pragma pacote em todos os lugares, o que é útil, pois pode variar entre compiladores.

É perfeitamente seguro embora. O impulso #pragma é seguido por uma pop, é apenas incluído a partir de um arquivo diferente. Então você provavelmente só deve desativar esse erro.

Outras dicas

Sim, você terá que partir do #pragma pack directiva em config / ABI / msvc_prefix.hpp. Ele indica que a embalagem padrão do seu projeto não é 8. Isso é muito incomum, é este intencional? Erros devido à embalagem diferenças podem ser um pouco complicado de diagnosticar.

Eu encontrei uma maneira de se livrar deste aviso.

Você precisa editar o arquivo boost_1 _ ** \ boost \ config \ user.hpp e descomente a linha com BOOST_DISABLE_ABI_HEADERS

Então você deve ser definir neste arquivo:

#define BOOST_DISABLE_ABI_HEADERS

Uma vez feito isto, construir apenas com bjam como faria normalmente .

Por favor, veja comentários abaixo para perigos desta solução

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