2012-01-19 26 views
5

Tôi muốn sử dụng Quá trình tăng cường dù nó chưa được phát hành. Tôi đã làmThiếu ngoại lệ trong quy trình tăng cường

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

thêm boost-process để bao gồm đường dẫn (-I) và #included<boost/process.hpp> nhưng biên soạn phàn nàn về filesystem_error không được định nghĩa:

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’ 

tôi đã cố gắng thay đổi namespace để boost::filesystem3 nhưng với kết quả tương tự.

Các defintion của filesystem_error

class BOOST_SYMBOL_VISIBLE filesystem_error : public system::system_error 

BOOST_SYMBOL_VISIBLE giấu nó?

+0

Theo kinh nghiệm của tôi, tốt hơn là nên sử dụng phiên bản mới hơn của boost.process, như soc2010: http://www.highscore.de/boost/gsoc2010/process.zip http://www.highscore.de/boost/gsoc2010/ – alfC

Trả lời

2

Tôi đã sửa lỗi này bằng cách chuyển -DBOOST_FILESYSTEM_VERSION = 2 trên dòng lệnh g ++ của tôi.

+2

Boost Filesystem v2 không còn được dùng nữa và được lên kế hoạch biến mất trong bản phát hành sắp tới của Boost. –

12

Bạn cần phải chỉnh sửa quá trình/operations.hpp để loại bỏ điều này:

#include <boost/filesystem/path.hpp> 

Và thay vì nói điều này:

#include <boost/filesystem/operations.hpp> 

Tôi nghĩ rằng điều này sẽ làm cho nó tương thích với Boost Filesystem v3 (mà sẽ sớm là phiên bản duy nhất, được lên lịch cho Boost 1,48).

+1

Điều này giúp thực sự nếu sử dụng Boost.Process với Boost 1.52. –

Các vấn đề liên quan