2012-01-19 19 views
5

Quiero utilizar Boost Process aunque todavía no se ha publicado. HiceFalta la excepción en el proceso Boost

svn co svn://svn.boost.org/svn/boost/sandbox/process/ boost-process 

añade boost-process incluir ruta (-I) y #included<boost/process.hpp> pero se queja de compilación filesystem_error no está definido:

boost-process/boost/process/operations.hpp: In function ‘std::string boost::process::find_executable_in_path(const string&, std::string)’: 
boost-process/boost/process/operations.hpp:85:36: error: ‘filesystem_error’ is not a member of ‘boost::filesystem3’ 
In file included from boost-process/boost/process.hpp:42:0, 
       from tests/../fio.hpp:22, 
       from tests/t_histogram.cpp:18: 
boost-process/boost/process/operations.hpp:130:32: error: ‘filesystem_error’ is not a member of ‘boost::filesystem3’ 

He intentado cambiar de espacio de nombres a boost::filesystem3 pero con los mismos resultados.

El Defintion de filesystem_error es

class BOOST_SYMBOL_VISIBLE filesystem_error : public system::system_error 

Es BOOST_SYMBOL_VISIBLE ocultarlo?

+0

En mi experiencia, es mejor usar una versión más reciente de boost.process, como soc2010: http://www.highscore.de/boost/gsoc2010/process.zip http://www.highscore.de/boost/gsoc2010/ – alfC

Respuesta

2

Lo arreglé pasando -DBOOST_FILESYSTEM_VERSION = 2 en mi línea de comandos de g ++.

+2

Boost Filesystem v2 está en desuso y programado para desaparecer en la próxima versión de Boost. –

12

Hay que editar el proceso/operations.hpp eliminar esta:

#include <boost/filesystem/path.hpp> 

Y en vez decir esto:

#include <boost/filesystem/operations.hpp> 

Creo que esto hará que sea compatible con la versión 3 del sistema de archivos Boost (que pronto será la única versión programada para Boost 1.48).

+1

Esto ayuda de hecho si se usa Boost.Process con Boost 1.52. –

Cuestiones relacionadas