Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

改为多目录支持后遇到的问题 #61

Open
GoogleCodeExporter opened this issue Sep 5, 2015 · 1 comment
Open

改为多目录支持后遇到的问题 #61

GoogleCodeExporter opened this issue Sep 5, 2015 · 1 comment

Comments

@GoogleCodeExporter
Copy link

hi,这款sersync同步工具确实不错。

但发现不支持多目录,遂打算自己动手,修改为多目录支持��
�

思路就是在InotifyEvent结构体中加入了boost::shared_ptr<RemoteServer>�
��员

让每个事件从属于各自的RemoteServer,

然后修改main.cpp的FileSynchronizeStart方法,将原先的while(1)循环��
�造为一个线程方法,使用boost::thread_group启动每个RemoteServer的
线程。

但不幸的是,编译总是报错,求助高手解决一下:

g++    -c -O2 -Iinclude -I/usr/local/include -MMD -MP -MF 
build/Release/GNU-Linux-x86/FileSynchronize.o.d -o 
build/Release/GNU-Linux-x86/FileSynchronize.o FileSynchronize.cpp
/usr/local/include/boost/bind/bind.hpp: In member function ‘void 
boost::_bi::list7<A1, A2, A3, A4, A5, A6, 
A7>::operator()(boost::_bi::type<void>, F&, A&, int) [with F = 
boost::shared_ptr<QueueFilter>, A = boost::_bi::list0, A1 = 
boost::_bi::value<boost::shared_ptr<QueueRetry> >, A2 = 
boost::_bi::value<boost::shared_ptr<InotifyEvent> >, A3 = 
boost::_bi::value<const char*>, A4 = boost::_bi::value<const char*>, A5 = 
boost::_bi::value<std::basic_string<char, std::char_traits<char>, 
std::allocator<char> > >, A6 = boost::_bi::value<const char*>, A7 = 
boost::_bi::value<const char*>]’:
/usr/local/include/boost/bind/bind_template.hpp:20:   instantiated from 
‘typename boost::_bi::result_traits<R, F>::type boost::_bi::bind_t<R, F, 
L>::operator()() [with R = void, F = boost::shared_ptr<QueueFilter>, L = 
boost::_bi::list7<boost::_bi::value<boost::shared_ptr<QueueRetry> >, 
boost::_bi::value<boost::shared_ptr<InotifyEvent> >, boost::_bi::value<const 
char*>, boost::_bi::value<const char*>, 
boost::_bi::value<std::basic_string<char, std::char_traits<char>, 
std::allocator<char> > >, boost::_bi::value<const char*>, 
boost::_bi::value<const char*> >]’
/usr/local/include/boost/thread/detail/thread.hpp:61:   instantiated from 
‘void boost::detail::thread_data<F>::run() [with F = boost::_bi::bind_t<void, 
boost::shared_ptr<QueueFilter>, 
boost::_bi::list7<boost::_bi::value<boost::shared_ptr<QueueRetry> >, 
boost::_bi::value<boost::shared_ptr<InotifyEvent> >, boost::_bi::value<const 
char*>, boost::_bi::value<const char*>, 
boost::_bi::value<std::basic_string<char, std::char_traits<char>, 
std::allocator<char> > >, boost::_bi::value<const char*>, 
boost::_bi::value<const char*> > >]’
FileSynchronize.cpp:511:   instantiated from here
/usr/local/include/boost/bind/bind.hpp:670: 错误:对 
‘(boost::shared_ptr<QueueFilter>) (boost::shared_ptr<QueueRetry>&, 
boost::shared_ptr<InotifyEvent>&, const char*&, const char*&, 
std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const 
char*&, const char*&)’ 的调用没有匹配
gmake[2]: *** [build/Release/GNU-Linux-x86/FileSynchronize.o] 错误 1

Original issue reported on code.google.com by [email protected] on 11 Mar 2012 at 5:48

@GoogleCodeExporter
Copy link
Author

FileSynchronize.cpp的511行附近是如下信息:

506 string FileSynchronize::AddExclude() {
507    string command;
508    for (int i = 0; i < cfilter.size(); i++) {
509        command += " --exclude=" + StrEscaped(cfilter[i]);
510    }
511    return command;
512 }

Original comment by [email protected] on 11 Mar 2012 at 6:01

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant