tags:

views:

22

answers:

0

I'm trying to compile qBittorrent on Windows using QtCreator/MingW. http://qbittorrent.sourceforge.net/download.php I need help with getting this to compile, but I'm fairly confused by these boost errors.

createtorrent_imp.cpp: In member function `virtual void torrentCreatorThread::run()':
createtorrent_imp.cpp:263: error: call of overloaded `bind(void (*)(int, int, torrentCreatorThread*), boost::arg<1> (&)(), int, torrentCreatorThread* const)' is ambiguous
../../boost_1_42_0/boost/bind/bind.hpp:1323: note: candidates are: boost::_bi::bind_t<R, F, typename boost::_bi::list_av_3<A1, A2, A3>::type> boost::bind(F, A1, A2, A3) [with R = void, F = void (*)(int, int, torrentCreatorThread*), A1 = boost::arg<1> (*)(), A2 = int, A3 = torrentCreatorThread*]
../../boost_1_42_0/boost/bind/bind_cc.hpp:47: note: boost::_bi::bind_t<R, R (*)(B1, B2, B3), typename boost::_bi::list_av_3<A1, A2, A3>::type> boost::bind(R (*)(B1, B2, B3), A1, A2, A3) [with R = void, B1 = int, B2 = int, B3 = torrentCreatorThread*, A1 = boost::arg<1> (*)(), A2 = int, A3 = torrentCreatorThread*]

offending code snippet:

void sendProgressUpdateSignal(int i, int num, torrentCreatorThread *parent){
  parent->sendProgressSignal((int)(i*100./(float)num));
}

void torrentCreatorThread::sendProgressSignal(int progress) {
  emit updateProgress(progress);
}

void torrentCreatorThread::run() {
  emit updateProgress(0);
  char const* creator_str = "qBittorrent "+VERSION;
  try {
    file_storage fs;
    file_pool fp;
    path full_path = complete(path(input_path.toLocal8Bit().data()));
    // Adding files to the torrent
    add_files(fs, full_path, file_filter);
    if(abort) return;
    create_torrent t(fs, piece_size);

    // Add url seeds
    QString seed;
    foreach(seed, url_seeds){
      t.add_url_seed(seed.toLocal8Bit().data());
    }
    for(int i=0; i<trackers.size(); ++i){
      t.add_tracker(trackers.at(i).toLocal8Bit().data());
    }
    if(abort) return;
    // calculate the hash for all pieces
    set_piece_hashes(t, full_path.branch_path(), boost::bind<void>(&sendProgressUpdateSignal, _1, t.num_pieces(), this));