Incluindo boost :: filesystem produz erros ligando
Pergunta
Ok primeiro fora, eu estou ligando para boost_system e boost_filesystem.
O meu compilador é um personalizado construção de MinGW com GCC 4.3.2
Então, quando eu incluem:
#include "boost/filesystem.hpp"
Eu fico ligando erros, tais como:
..\..\libraries\boost\libs\libboost_system.a(error_code.o):error_code.cpp:
(.text+0xe35)||undefined reference to `_Unwind_Resume'|
..\..\libraries\boost\libs\libboost_system.a(error_code.o):error_code.cpp:
(.eh_frame+0x12)||undefined reference to `__gxx_personality_v0'|
Que depois de um pouco de pesquisa eu encontrei é mais comumente quando você tenta vincular um programa C ++ com GCC, o compilador GNU C. Mas eu imprimiu o comando de compilação exata que Code :: Blocks está em execução, e é definitivamente a ligação com g ++ .
Se eu comentar este incluem, tudo funciona bem.
Todas as idéias? Além disso, como um lado, alguém sabe de um bom lugar para obter binários do Windows para o impulso? O sistema de compilação está me dando problemas, então eu estou usando alguns binários que vieram com esta href="http://nuwen.net/mingw.html#contents" rel="nofollow noreferrer"> pacote personalizado
Solução
Ok, eu encontrei o problema. É um pouco complicado.
GCC está gradualmente se tornando mais IS 14882 compatível no ramo 4.x. Como eles vão, eles estão removendo obsoleto características reclamação não-padrões.
Enquanto 4.1.x parecem ter apenas eles obsoleto e não removido, 4.3.x parece realmente tê-los removidos. O que isto significa é 4.3.x e maior tem alguns problemas de compatibilidade com as coisas compilados no ramo 3.x (que usou o obsoleto e agora removido características)
Eu estava usando uma combinação mix and match de binários que tinha sido compilado com GCC 3.x, 4.1.xe 4.3.x então não importa qual deles eu usei, eu tenho um erro semelhante, porque pelo menos um eu binário foi ligando para era incompatível com o compilador Eu estava tentando no momento.
Agora estou usando GCC 4.1.2 ea maioria dos meus binários foram compilados com ele. Ainda estou como sempre usando alguns binários de 3.x, que é por isso que eu não estou atualizando para 4.3.x ainda.
Hope, que foi menos confuso para ler do que era para escrever ...
Este parece ser um bom post abordar algumas das questões que eles estavam com 4.1.x
Outras dicas
Windows binários: www.boost.org - veja a página "Introdução" - mas se você estiver usando g ++ em MingGW você não quer aqueles. Uma simples maneira de entender é, MingGW é como um sistema operacional dentro de um sistema operacional, então realmente você não está realmente usando o Windows. Os que você tem provavelmente está certo.
Não sei o que está acontecendo com o seu código, porém, soa como os arquivos lib não está ligando corretamente de alguma forma. nomes impulsionar seus arquivos lib por si só assim que você realmente não nomeá-los explicitamente, mas você tem que ter os arquivos lib para impulso no caminho certo (e se certificar que estão instalados / construídos também, que eles podem não ser). Eu não sei como obtê-los no caminho certo com g ++, porque eu não usei MingGW, não tenho impulso usado somente com o Visual Studio.