O problema
Ele diz que In file included from src/main.cpp:16:0
tem erros ao tentar usar um arquivo de biblioteca .so
como se fosse um arquivo de origem C ++. .so
files definitivamente não são arquivos fonte C ++, então é claro que você terá erros lá.
Veja a linha 16 de src/main.cpp
e veja o que está errado aí. Você provavelmente está fazendo algo como #include "/home/dell/boost_1_55_0/stage/lib/libboost_filesystem.so"
.
#include
deve ser usado apenas para incluir arquivos de origem C ++ (geralmente .h
files). Nunca deve ser usado para arquivos .so
.
A solução
A opçãog++
do -L
pode ser usada para dizer onde as bibliotecas binárias estão localizadas e sua opção -l
pode ser usada para dizer a ela para usar uma biblioteca específica.
Observe que -lname
tentará usar libname.so
, portanto você não deseja que a parte lib
do nome seja incluída, ou você obterá o problema de que -libname
tente usar libibname.so
.
- Remova as linhas
#include
que incluem.so
arquivos. -
Altere
g++ -Wall -O2 -libboost_filesystem -std=c++0x -o mnisten src/main.cpp
para algo como:g++ -Wall -O2 -L/home/dell/boost_1_55_0/stage/lib -lboost_filesystem -std=c++0x -o mnisten src/main.cpp
Você pode simplesmente colocar o caminho completo para o arquivo
.so
da seguinte forma:g++ -Wall -O2 -std=c++0x -o mnisten /home/dell/boost_1_55_0/stage/lib/libboost_filesystem.so src/main.cpp