Compilation error for windows target #8511

issue NicolasDorier opened this issue on August 14, 2016
  1. NicolasDorier commented at 8:05 AM on August 14, 2016: contributor

    I used git clean -dfx, rebuilt depends, still getting it:

    CXX      libbitcoin_server_a-pow.o
      CXX      libbitcoin_server_a-rest.o
      CXX      rpc/libbitcoin_server_a-blockchain.o
    gcc gen_context.o -o gen_context
    ./gen_context
      CC       src/libsecp256k1_la-secp256k1.lo
    httpserver.cpp:69:10: error: ‘mutex’ in namespace ‘std’ does not name a type
         std::mutex cs;
              ^
    httpserver.cpp:70:10: error: ‘condition_variable’ in namespace ‘std’ does not name a type
         std::condition_variable cond;
              ^
    httpserver.cpp: In constructor ‘WorkQueue<WorkItem>::ThreadCounter::ThreadCounter(WorkQueue<WorkItem>&)’:
    httpserver.cpp:83:29: error: ‘mutex’ is not a member of ‘std’
                 std::lock_guard<std::mutex> lock(wq.cs);
                                 ^
    httpserver.cpp:83:29: note: suggested alternatives:
    In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/mutex.hpp:14:0,
                     from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/condition_variable.hpp:17,
                     from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/condition_variable.hpp:14,
                     from sync.h:11,
                     from httpserver.cpp:12:
    /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/mutex.hpp:25:11: note:   ‘boost::mutex’
         class mutex:
               ^
    In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/mutex.hpp:32:0,
                     from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/signal.hpp:31,
                     from util.h:29,
                     from httpserver.cpp:9:
    /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/detail/lwm_win32_cs.hpp:68:7: note:   ‘boost::signals2::mutex’
     class mutex
           ^
    httpserver.cpp:83:29: error: ‘mutex’ is not a member of ‘std’
                 std::lock_guard<std::mutex> lock(wq.cs);
                                 ^
    httpserver.cpp:83:29: note: suggested alternatives:
    In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/mutex.hpp:14:0,
                     from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/condition_variable.hpp:17,
                     from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/condition_variable.hpp:14,
                     from sync.h:11,
                     from httpserver.cpp:12:
    /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/mutex.hpp:25:11: note:   ‘boost::mutex’
         class mutex:
               ^
    In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/mutex.hpp:32:0,
                     from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/signal.hpp:31,
                     from util.h:29,
                     from httpserver.cpp:9:
    /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/detail/lwm_win32_cs.hpp:68:7: note:   ‘boost::signals2::mutex’
     class mutex
           ^
    httpserver.cpp:83:39: error: template argument 1 is invalid
                 std::lock_guard<std::mutex> lock(wq.cs);
                                           ^
    httpserver.cpp:83:45: error: invalid type in declaration before ‘(’ token
                 std::lock_guard<std::mutex> lock(wq.cs);
                                                 ^
    httpserver.cpp: In destructor ‘WorkQueue<WorkItem>::ThreadCounter::~ThreadCounter()’:
    httpserver.cpp:88:29: error: ‘mutex’ is not a member of ‘std’
                 std::lock_guard<std::mutex> lock(wq.cs);
                                 ^
    httpserver.cpp:88:29: note: suggested alternatives:
    In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/mutex.hpp:14:0,
                     from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/condition_variable.hpp:17,
                     from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/condition_variable.hpp:14,
                     from sync.h:11,
                     from httpserver.cpp:12:
    /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/mutex.hpp:25:11: note:   ‘boost::mutex’
         class mutex:
               ^
    In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/mutex.hpp:32:0,
                     from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/signal.hpp:31,
                     from util.h:29,
                     from httpserver.cpp:9:
    /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/detail/lwm_win32_cs.hpp:68:7: note:   ‘boost::signals2::mutex’
     class mutex
           ^
    httpserver.cpp:88:29: error: ‘mutex’ is not a member of ‘std’
                 std::lock_guard<std::mutex> lock(wq.cs);
                                 ^
    httpserver.cpp:88:29: note: suggested alternatives:
    In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/mutex.hpp:14:0,
                     from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/condition_variable.hpp:17,
                     from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/condition_variable.hpp:14,
                     from sync.h:11,
                     from httpserver.cpp:12:
    /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/mutex.hpp:25:11: note:   ‘boost::mutex’
         class mutex:
               ^
    In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/mutex.hpp:32:0,
                     from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/signal.hpp:31,
                     from util.h:29,
                     from httpserver.cpp:9:
    /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/detail/lwm_win32_cs.hpp:68:7: note:   ‘boost::signals2::mutex’
     class mutex
           ^
    httpserver.cpp:88:39: error: template argument 1 is invalid
                 std::lock_guard<std::mutex> lock(wq.cs);
                                           ^
    httpserver.cpp:88:45: error: invalid type in declaration before ‘(’ token
                 std::lock_guard<std::mutex> lock(wq.cs);
                                                 ^
    httpserver.cpp: In member function ‘bool WorkQueue<WorkItem>::Enqueue(WorkItem*)’:
    httpserver.cpp:109:26: error: ‘mutex’ is not a member of ‘std’
             std::unique_lock<std::mutex> lock(cs);
                              ^
    httpserver.cpp:109:26: note: suggested alternatives:
    In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/mutex.hpp:14:0,
                     from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/condition_variable.hpp:17,
                     from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/condition_variable.hpp:14,
                     from sync.h:11,
                     from httpserver.cpp:12:
    /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/mutex.hpp:25:11: note:   ‘boost::mutex’
         class mutex:
               ^
    In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/mutex.hpp:32:0,
                     from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/signal.hpp:31,
                     from util.h:29,
                     from httpserver.cpp:9:
    /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/detail/lwm_win32_cs.hpp:68:7: note:   ‘boost::signals2::mutex’
     class mutex
           ^
    httpserver.cpp:109:26: error: ‘mutex’ is not a member of ‘std’
             std::unique_lock<std::mutex> lock(cs);
                              ^
    httpserver.cpp:109:26: note: suggested alternatives:
    In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/mutex.hpp:14:0,
                     from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/condition_variable.hpp:17,
                     from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/condition_variable.hpp:14,
                     from sync.h:11,
                     from httpserver.cpp:12:
    /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/mutex.hpp:25:11: note:   ‘boost::mutex’
         class mutex:
               ^
    In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/mutex.hpp:32:0,
                     from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/signal.hpp:31,
                     from util.h:29,
                     from httpserver.cpp:9:
    /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/detail/lwm_win32_cs.hpp:68:7: note:   ‘boost::signals2::mutex’
     class mutex
           ^
    httpserver.cpp:109:36: error: template argument 1 is invalid
             std::unique_lock<std::mutex> lock(cs);
                                        ^
    httpserver.cpp:109:42: error: invalid type in declaration before ‘(’ token
             std::unique_lock<std::mutex> lock(cs);
                                              ^
    httpserver.cpp:109:43: error: ‘cs’ was not declared in this scope
             std::unique_lock<std::mutex> lock(cs);
                                               ^
    httpserver.cpp:114:9: error: ‘cond’ was not declared in this scope
             cond.notify_one();
             ^
    httpserver.cpp: In member function ‘void WorkQueue<WorkItem>::Run()’:
    httpserver.cpp:124:34: error: ‘mutex’ is not a member of ‘std’
                     std::unique_lock<std::mutex> lock(cs);
                                      ^
    httpserver.cpp:124:34: note: suggested alternatives:
    In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/mutex.hpp:14:0,
                     from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/condition_variable.hpp:17,
                     from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/condition_variable.hpp:14,
                     from sync.h:11,
                     from httpserver.cpp:12:
    /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/mutex.hpp:25:11: note:   ‘boost::mutex’
         class mutex:
               ^
    In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/mutex.hpp:32:0,
                     from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/signal.hpp:31,
                     from util.h:29,
                     from httpserver.cpp:9:
    /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/detail/lwm_win32_cs.hpp:68:7: note:   ‘boost::signals2::mutex’
     class mutex
           ^
    httpserver.cpp:124:34: error: ‘mutex’ is not a member of ‘std’
                     std::unique_lock<std::mutex> lock(cs);
                                      ^
    httpserver.cpp:124:34: note: suggested alternatives:
    In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/mutex.hpp:14:0,
                     from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/condition_variable.hpp:17,
                     from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/condition_variable.hpp:14,
                     from sync.h:11,
                     from httpserver.cpp:12:
    /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/mutex.hpp:25:11: note:   ‘boost::mutex’
         class mutex:
               ^
    In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/mutex.hpp:32:0,
                     from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/signal.hpp:31,
                     from util.h:29,
                     from httpserver.cpp:9:
    /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/detail/lwm_win32_cs.hpp:68:7: note:   ‘boost::signals2::mutex’
     class mutex
           ^
    httpserver.cpp:124:44: error: template argument 1 is invalid
                     std::unique_lock<std::mutex> lock(cs);
                                                ^
    httpserver.cpp:124:50: error: invalid type in declaration before ‘(’ token
                     std::unique_lock<std::mutex> lock(cs);
                                                      ^
    httpserver.cpp:124:51: error: ‘cs’ was not declared in this scope
                     std::unique_lock<std::mutex> lock(cs);
                                                       ^
    httpserver.cpp:126:21: error: ‘cond’ was not declared in this scope
                         cond.wait(lock);
                         ^
    httpserver.cpp: In member function ‘void WorkQueue<WorkItem>::Interrupt()’:
    httpserver.cpp:138:26: error: ‘mutex’ is not a member of ‘std’
             std::unique_lock<std::mutex> lock(cs);
                              ^
    httpserver.cpp:138:26: note: suggested alternatives:
    In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/mutex.hpp:14:0,
                     from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/condition_variable.hpp:17,
                     from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/condition_variable.hpp:14,
                     from sync.h:11,
                     from httpserver.cpp:12:
    /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/mutex.hpp:25:11: note:   ‘boost::mutex’
         class mutex:
               ^
    In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/mutex.hpp:32:0,
                     from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/signal.hpp:31,
                     from util.h:29,
                     from httpserver.cpp:9:
    /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/detail/lwm_win32_cs.hpp:68:7: note:   ‘boost::signals2::mutex’
     class mutex
           ^
    httpserver.cpp:138:26: error: ‘mutex’ is not a member of ‘std’
             std::unique_lock<std::mutex> lock(cs);
                              ^
    httpserver.cpp:138:26: note: suggested alternatives:
    In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/mutex.hpp:14:0,
                     from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/condition_variable.hpp:17,
                     from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/condition_variable.hpp:14,
                     from sync.h:11,
                     from httpserver.cpp:12:
    /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/mutex.hpp:25:11: note:   ‘boost::mutex’
         class mutex:
               ^
    In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/mutex.hpp:32:0,
                     from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/signal.hpp:31,
                     from util.h:29,
                     from httpserver.cpp:9:
    /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/detail/lwm_win32_cs.hpp:68:7: note:   ‘boost::signals2::mutex’
     class mutex
           ^
    httpserver.cpp:138:36: error: template argument 1 is invalid
             std::unique_lock<std::mutex> lock(cs);
                                        ^
    httpserver.cpp:138:42: error: invalid type in declaration before ‘(’ token
             std::unique_lock<std::mutex> lock(cs);
                                              ^
    httpserver.cpp:138:43: error: ‘cs’ was not declared in this scope
             std::unique_lock<std::mutex> lock(cs);
                                               ^
    httpserver.cpp:140:9: error: ‘cond’ was not declared in this scope
             cond.notify_all();
             ^
    httpserver.cpp: In member function ‘void WorkQueue<WorkItem>::WaitExit()’:
    httpserver.cpp:145:26: error: ‘mutex’ is not a member of ‘std’
             std::unique_lock<std::mutex> lock(cs);
                              ^
    httpserver.cpp:145:26: note: suggested alternatives:
    In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/mutex.hpp:14:0,
                     from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/condition_variable.hpp:17,
                     from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/condition_variable.hpp:14,
                     from sync.h:11,
                     from httpserver.cpp:12:
    /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/mutex.hpp:25:11: note:   ‘boost::mutex’
         class mutex:
               ^
    In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/mutex.hpp:32:0,
                     from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/signal.hpp:31,
                     from util.h:29,
                     from httpserver.cpp:9:
    /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/detail/lwm_win32_cs.hpp:68:7: note:   ‘boost::signals2::mutex’
     class mutex
           ^
    httpserver.cpp:145:26: error: ‘mutex’ is not a member of ‘std’
             std::unique_lock<std::mutex> lock(cs);
                              ^
    httpserver.cpp:145:26: note: suggested alternatives:
    In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/mutex.hpp:14:0,
                     from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/condition_variable.hpp:17,
                     from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/condition_variable.hpp:14,
                     from sync.h:11,
                     from httpserver.cpp:12:
    /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/mutex.hpp:25:11: note:   ‘boost::mutex’
         class mutex:
               ^
    In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/mutex.hpp:32:0,
                     from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/signal.hpp:31,
                     from util.h:29,
                     from httpserver.cpp:9:
    /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/detail/lwm_win32_cs.hpp:68:7: note:   ‘boost::signals2::mutex’
     class mutex
           ^
    httpserver.cpp:145:36: error: template argument 1 is invalid
             std::unique_lock<std::mutex> lock(cs);
                                        ^
    httpserver.cpp:145:42: error: invalid type in declaration before ‘(’ token
             std::unique_lock<std::mutex> lock(cs);
                                              ^
    httpserver.cpp:145:43: error: ‘cs’ was not declared in this scope
             std::unique_lock<std::mutex> lock(cs);
                                               ^
    httpserver.cpp:147:13: error: ‘cond’ was not declared in this scope
                 cond.wait(lock);
                 ^
    httpserver.cpp: In member function ‘size_t WorkQueue<WorkItem>::Depth()’:
    httpserver.cpp:153:26: error: ‘mutex’ is not a member of ‘std’
             std::unique_lock<std::mutex> lock(cs);
                              ^
    httpserver.cpp:153:26: note: suggested alternatives:
    In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/mutex.hpp:14:0,
                     from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/condition_variable.hpp:17,
                     from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/condition_variable.hpp:14,
                     from sync.h:11,
                     from httpserver.cpp:12:
    /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/mutex.hpp:25:11: note:   ‘boost::mutex’
         class mutex:
               ^
    In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/mutex.hpp:32:0,
                     from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/signal.hpp:31,
                     from util.h:29,
                     from httpserver.cpp:9:
    /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/detail/lwm_win32_cs.hpp:68:7: note:   ‘boost::signals2::mutex’
     class mutex
           ^
    httpserver.cpp:153:26: error: ‘mutex’ is not a member of ‘std’
             std::unique_lock<std::mutex> lock(cs);
                              ^
    httpserver.cpp:153:26: note: suggested alternatives:
    In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/mutex.hpp:14:0,
                     from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/condition_variable.hpp:17,
                     from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/condition_variable.hpp:14,
                     from sync.h:11,
                     from httpserver.cpp:12:
    /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/mutex.hpp:25:11: note:   ‘boost::mutex’
         class mutex:
               ^
    In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/mutex.hpp:32:0,
                     from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/signal.hpp:31,
                     from util.h:29,
                     from httpserver.cpp:9:
    /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/detail/lwm_win32_cs.hpp:68:7: note:   ‘boost::signals2::mutex’
     class mutex
           ^
    httpserver.cpp:153:36: error: template argument 1 is invalid
             std::unique_lock<std::mutex> lock(cs);
                                        ^
    httpserver.cpp:153:42: error: invalid type in declaration before ‘(’ token
             std::unique_lock<std::mutex> lock(cs);
                                              ^
    httpserver.cpp:153:43: error: ‘cs’ was not declared in this scope
             std::unique_lock<std::mutex> lock(cs);
                                               ^
    httpserver.cpp: At global scope:
    httpserver.cpp:439:6: error: ‘thread’ in namespace ‘std’ does not name a type
     std::thread threadHTTP;
          ^
    httpserver.cpp:440:19: error: aggregate ‘std::future<bool> threadResult’ has incomplete type and cannot be defined
     std::future<bool> threadResult;
                       ^
    httpserver.cpp: In function ‘bool StartHTTPServer()’:
    httpserver.cpp:447:67: error: variable ‘std::packaged_task<bool(event_base*, evhttp*)> task’ has initializer but incomplete type
         std::packaged_task<bool(event_base*, evhttp*)> task(ThreadHTTP);
                                                                       ^
    httpserver.cpp:449:5: error: ‘threadHTTP’ was not declared in this scope
         threadHTTP = std::thread(std::move(task), eventBase, eventHTTP);
         ^
    httpserver.cpp:449:18: error: ‘thread’ is not a member of ‘std’
         threadHTTP = std::thread(std::move(task), eventBase, eventHTTP);
                      ^
    httpserver.cpp:452:9: error: ‘thread’ is not a member of ‘std’
             std::thread rpc_worker(HTTPWorkQueueRun, workQueue);
             ^
    httpserver.cpp:453:9: error: ‘rpc_worker’ was not declared in this scope
             rpc_worker.detach();
             ^
    httpserver.cpp: In function ‘void StopHTTPServer()’:
    httpserver.cpp:493:9: error: ‘threadHTTP’ was not declared in this scope
             threadHTTP.join();
             ^
    httpserver.cpp: In instantiation of ‘WorkQueue<WorkItem>::ThreadCounter::ThreadCounter(WorkQueue<WorkItem>&) [with WorkItem = HTTPClosure]’:
    httpserver.cpp:120:34:   required from ‘void WorkQueue<WorkItem>::Run() [with WorkItem = HTTPClosure]’
    httpserver.cpp:356:16:   required from here
    httpserver.cpp:83:51: error: ‘class WorkQueue<HTTPClosure>’ has no member named ‘cs’
                 std::lock_guard<std::mutex> lock(wq.cs);
                                                       ^
    httpserver.cpp: In instantiation of ‘WorkQueue<WorkItem>::ThreadCounter::~ThreadCounter() [with WorkItem = HTTPClosure]’:
    httpserver.cpp:120:34:   required from ‘void WorkQueue<WorkItem>::Run() [with WorkItem = HTTPClosure]’
    httpserver.cpp:356:16:   required from here
    httpserver.cpp:88:51: error: ‘class WorkQueue<HTTPClosure>’ has no member named ‘cs’
                 std::lock_guard<std::mutex> lock(wq.cs);
                                                       ^
    httpserver.cpp:90:13: error: ‘class WorkQueue<HTTPClosure>’ has no member named ‘cond’
                 wq.cond.notify_all();
                 ^
    Makefile:5033: recipe for target 'libbitcoin_server_a-httpserver.o' failed
    make[2]: *** [libbitcoin_server_a-httpserver.o] Error 1
    make[2]: *** Waiting for unfinished jobs....
      CCLD     libsecp256k1.la
    libtool: link: warning: undefined symbols not allowed in x86_64-w64-mingw32 shared libraries
    /usr/bin/x86_64-w64-mingw32-ar: `u' modifier ignored since `D' is the default (see `U')
    make[3]: Leaving directory '/home/nicolasdorier/bitcoin/src/secp256k1'
    make[2]: Leaving directory '/home/nicolasdorier/bitcoin/src'
    Makefile:8349: recipe for target 'all-recursive' failed
    make[1]: *** [all-recursive] Error 1
    make[1]: Leaving directory '/home/nicolasdorier/bitcoin/src'
    Makefile:677: recipe for target 'all-recursive' failed
    make: *** [all-recursive] Error 1
    
  2. achow101 commented at 3:03 PM on August 14, 2016: member

    I've got the same error. The discussion we had on IRC said that it might have something to do with c++11.

    On 8/14/2016 4:06 AM, Nicolas Dorier wrote:

    I used git clean -dfx, rebuilt depends, still getting it:

    |CXX libbitcoin_server_a-pow.o CXX libbitcoin_server_a-rest.o CXX rpc/libbitcoin_server_a-blockchain.o gcc gen_context.o -o gen_context ./gen_context CC src/libsecp256k1_la-secp256k1.lo httpserver.cpp:69:10: error: ‘mutex’ in namespace ‘std’ does not name a type std::mutex cs; ^ httpserver.cpp:70:10: error: ‘condition_variable’ in namespace ‘std’ does not name a type std::condition_variable cond; ^ httpserver.cpp: In constructor ‘WorkQueue<WorkItem>::ThreadCounter::ThreadCounter(WorkQueue<WorkItem>&)’: httpserver.cpp:83:29: error: ‘mutex’ is not a member of ‘std’ std::lock_guardstd::mutex lock(wq.cs); ^ httpserver.cpp:83:29: note: suggested alternatives: In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/mutex.hpp:14:0, from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/condition_variable.hpp:17, from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/condition_variable.hpp:14, from sync.h:11, from httpserver.cpp:12: /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/mutex.hpp:25:11: note: ‘boost::mutex’ class mutex: ^ In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/mutex.hpp:32:0, from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/signal.hpp:31, from util.h:29, from httpserver.cpp:9: /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/detail/lwm_win32_cs.hpp:68:7: note: ‘boost::signals2::mutex’ class mutex ^ httpserver.cpp:83:29: error: ‘mutex’ is not a member of ‘std’ std::lock_guardstd::mutex lock(wq.cs); ^ httpserver.cpp:83:29: note: suggested alternatives: In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/mutex.hpp:14:0, from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/condition_variable.hpp:17, from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/condition_variable.hpp:14, from sync.h:11, from httpserver.cpp:12: /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/mutex.hpp:25:11: note: ‘boost::mutex’ class mutex: ^ In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/mutex.hpp:32:0, from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/signal.hpp:31, from util.h:29, from httpserver.cpp:9: /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/detail/lwm_win32_cs.hpp:68:7: note: ‘boost::signals2::mutex’ class mutex ^ httpserver.cpp:83:39: error: template argument 1 is invalid std::lock_guardstd::mutex lock(wq.cs); ^ httpserver.cpp:83:45: error: invalid type in declaration before ‘(’ token std::lock_guardstd::mutex lock(wq.cs); ^ httpserver.cpp: In destructor ‘WorkQueue<WorkItem>::ThreadCounter::~ThreadCounter()’: httpserver.cpp:88:29: error: ‘mutex’ is not a member of ‘std’ std::lock_guardstd::mutex lock(wq.cs); ^ httpserver.cpp:88:29: note: suggested alternatives: In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/mutex.hpp:14:0, from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/condition_variable.hpp:17, from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/condition_variable.hpp:14, from sync.h:11, from httpserver.cpp:12: /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/mutex.hpp:25:11: note: ‘boost::mutex’ class mutex: ^ In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/mutex.hpp:32:0, from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/signal.hpp:31, from util.h:29, from httpserver.cpp:9: /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/detail/lwm_win32_cs.hpp:68:7: note: ‘boost::signals2::mutex’ class mutex ^ httpserver.cpp:88:29: error: ‘mutex’ is not a member of ‘std’ std::lock_guardstd::mutex lock(wq.cs); ^ httpserver.cpp:88:29: note: suggested alternatives: In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/mutex.hpp:14:0, from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/condition_variable.hpp:17, from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/condition_variable.hpp:14, from sync.h:11, from httpserver.cpp:12: /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/mutex.hpp:25:11: note: ‘boost::mutex’ class mutex: ^ In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/mutex.hpp:32:0, from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/signal.hpp:31, from util.h:29, from httpserver.cpp:9: /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/detail/lwm_win32_cs.hpp:68:7: note: ‘boost::signals2::mutex’ class mutex ^ httpserver.cpp:88:39: error: template argument 1 is invalid std::lock_guardstd::mutex lock(wq.cs); ^ httpserver.cpp:88:45: error: invalid type in declaration before ‘(’ token std::lock_guardstd::mutex lock(wq.cs); ^ httpserver.cpp: In member function ‘bool WorkQueue<WorkItem>::Enqueue(WorkItem_)’: httpserver.cpp:109:26: error: ‘mutex’ is not a member of ‘std’ std::unique_lockstd::mutex lock(cs); ^ httpserver.cpp:109:26: note: suggested alternatives: In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/mutex.hpp:14:0, from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/condition_variable.hpp:17, from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/condition_variable.hpp:14, from sync.h:11, from httpserver.cpp:12: /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/mutex.hpp:25:11: note: ‘boost::mutex’ class mutex: ^ In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/mutex.hpp:32:0, from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/signal.hpp:31, from util.h:29, from httpserver.cpp:9: /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/detail/lwm_win32_cs.hpp:68:7: note: ‘boost::signals2::mutex’ class mutex ^ httpserver.cpp:109:26: error: ‘mutex’ is not a member of ‘std’ std::unique_lockstd::mutex lock(cs); ^ httpserver.cpp:109:26: note: suggested alternatives: In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/mutex.hpp:14:0, from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/condition_variable.hpp:17, from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/condition_variable.hpp:14, from sync.h:11, from httpserver.cpp:12: /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/mutex.hpp:25:11: note: ‘boost::mutex’ class mutex: ^ In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/mutex.hpp:32:0, from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/signal.hpp:31, from util.h:29, from httpserver.cpp:9: /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/detail/lwm_win32_cs.hpp:68:7: note: ‘boost::signals2::mutex’ class mutex ^ httpserver.cpp:109:36: error: template argument 1 is invalid std::unique_lockstd::mutex lock(cs); ^ httpserver.cpp:109:42: error: invalid type in declaration before ‘(’ token std::unique_lockstd::mutex lock(cs); ^ httpserver.cpp:109:43: error: ‘cs’ was not declared in this scope std::unique_lockstd::mutex lock(cs); ^ httpserver.cpp:114:9: error: ‘cond’ was not declared in this scope cond.notify_one(); ^ httpserver.cpp: In member function ‘void WorkQueue<WorkItem>::Run()’: httpserver.cpp:124:34: error: ‘mutex’ is not a member of ‘std’ std::unique_lockstd::mutex lock(cs); ^ httpserver.cpp:124:34: note: suggested alternatives: In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/mutex.hpp:14:0, from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/condition_variable.hpp:17, from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/condition_variable.hpp:14, from sync.h:11, from httpserver.cpp:12: /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/mutex.hpp:25:11: note: ‘boost::mutex’ class mutex: ^ In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/mutex.hpp:32:0, from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/signal.hpp:31, from util.h:29, from httpserver.cpp:9: /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/detail/lwm_win32_cs.hpp:68:7: note: ‘boost::signals2::mutex’ class mutex ^ httpserver.cpp:124:34: error: ‘mutex’ is not a member of ‘std’ std::unique_lockstd::mutex lock(cs); ^ httpserver.cpp:124:34: note: suggested alternatives: In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/mutex.hpp:14:0, from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/condition_variable.hpp:17, from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/condition_variable.hpp:14, from sync.h:11, from httpserver.cpp:12: /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/mutex.hpp:25:11: note: ‘boost::mutex’ class mutex: ^ In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/mutex.hpp:32:0, from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/signal.hpp:31, from util.h:29, from httpserver.cpp:9: /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/detail/lwm_win32_cs.hpp:68:7: note: ‘boost::signals2::mutex’ class mutex ^ httpserver.cpp:124:44: error: template argument 1 is invalid std::unique_lockstd::mutex lock(cs); ^ httpserver.cpp:124:50: error: invalid type in declaration before ‘(’ token std::unique_lockstd::mutex lock(cs); ^ httpserver.cpp:124:51: error: ‘cs’ was not declared in this scope std::unique_lockstd::mutex lock(cs); ^ httpserver.cpp:126:21: error: ‘cond’ was not declared in this scope cond.wait(lock); ^ httpserver.cpp: In member function ‘void WorkQueue<WorkItem>::Interrupt()’: httpserver.cpp:138:26: error: ‘mutex’ is not a member of ‘std’ std::unique_lockstd::mutex lock(cs); ^ httpserver.cpp:138:26: note: suggested alternatives: In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/mutex.hpp:14:0, from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/condition_variable.hpp:17, from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/condition_variable.hpp:14, from sync.h:11, from httpserver.cpp:12: /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/mutex.hpp:25:11: note: ‘boost::mutex’ class mutex: ^ In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/mutex.hpp:32:0, from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/signal.hpp:31, from util.h:29, from httpserver.cpp:9: /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/detail/lwm_win32_cs.hpp:68:7: note: ‘boost::signals2::mutex’ class mutex ^ httpserver.cpp:138:26: error: ‘mutex’ is not a member of ‘std’ std::unique_lockstd::mutex lock(cs); ^ httpserver.cpp:138:26: note: suggested alternatives: In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/mutex.hpp:14:0, from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/condition_variable.hpp:17, from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/condition_variable.hpp:14, from sync.h:11, from httpserver.cpp:12: /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/mutex.hpp:25:11: note: ‘boost::mutex’ class mutex: ^ In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/mutex.hpp:32:0, from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/signal.hpp:31, from util.h:29, from httpserver.cpp:9: /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/detail/lwm_win32_cs.hpp:68:7: note: ‘boost::signals2::mutex’ class mutex ^ httpserver.cpp:138:36: error: template argument 1 is invalid std::unique_lockstd::mutex lock(cs); ^ httpserver.cpp:138:42: error: invalid type in declaration before ‘(’ token std::unique_lockstd::mutex lock(cs); ^ httpserver.cpp:138:43: error: ‘cs’ was not declared in this scope std::unique_lockstd::mutex lock(cs); ^ httpserver.cpp:140:9: error: ‘cond’ was not declared in this scope cond.notify_all(); ^ httpserver.cpp: In member function ‘void WorkQueue<WorkItem>::WaitExit()’: httpserver.cpp:145:26: error: ‘mutex’ is not a member of ‘std’ std::unique_lockstd::mutex lock(cs); ^ httpserver.cpp:145:26: note: suggested alternatives: In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/mutex.hpp:14:0, from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/condition_variable.hpp:17, from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/condition_variable.hpp:14, from sync.h:11, from httpserver.cpp:12: /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/mutex.hpp:25:11: note: ‘boost::mutex’ class mutex: ^ In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/mutex.hpp:32:0, from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/signal.hpp:31, from util.h:29, from httpserver.cpp:9: /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/detail/lwm_win32_cs.hpp:68:7: note: ‘boost::signals2::mutex’ class mutex ^ httpserver.cpp:145:26: error: ‘mutex’ is not a member of ‘std’ std::unique_lockstd::mutex lock(cs); ^ httpserver.cpp:145:26: note: suggested alternatives: In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/mutex.hpp:14:0, from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/condition_variable.hpp:17, from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/condition_variable.hpp:14, from sync.h:11, from httpserver.cpp:12: /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/mutex.hpp:25:11: note: ‘boost::mutex’ class mutex: ^ In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/mutex.hpp:32:0, from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/signal.hpp:31, from util.h:29, from httpserver.cpp:9: /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/detail/lwm_win32_cs.hpp:68:7: note: ‘boost::signals2::mutex’ class mutex ^ httpserver.cpp:145:36: error: template argument 1 is invalid std::unique_lockstd::mutex lock(cs); ^ httpserver.cpp:145:42: error: invalid type in declaration before ‘(’ token std::unique_lockstd::mutex lock(cs); ^ httpserver.cpp:145:43: error: ‘cs’ was not declared in this scope std::unique_lockstd::mutex lock(cs); ^ httpserver.cpp:147:13: error: ‘cond’ was not declared in this scope cond.wait(lock); ^ httpserver.cpp: In member function ‘size_t WorkQueue<WorkItem>::Depth()’: httpserver.cpp:153:26: error: ‘mutex’ is not a member of ‘std’ std::unique_lockstd::mutex lock(cs); ^ httpserver.cpp:153:26: note: suggested alternatives: In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/mutex.hpp:14:0, from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/condition_variable.hpp:17, from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/condition_variable.hpp:14, from sync.h:11, from httpserver.cpp:12: /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/mutex.hpp:25:11: note: ‘boost::mutex’ class mutex: ^ In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/mutex.hpp:32:0, from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/signal.hpp:31, from util.h:29, from httpserver.cpp:9: /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/detail/lwm_win32_cs.hpp:68:7: note: ‘boost::signals2::mutex’ class mutex ^ httpserver.cpp:153:26: error: ‘mutex’ is not a member of ‘std’ std::unique_lockstd::mutex lock(cs); ^ httpserver.cpp:153:26: note: suggested alternatives: In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/mutex.hpp:14:0, from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/condition_variable.hpp:17, from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/condition_variable.hpp:14, from sync.h:11, from httpserver.cpp:12: /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/mutex.hpp:25:11: note: ‘boost::mutex’ class mutex: ^ In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/mutex.hpp:32:0, from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/signal.hpp:31, from util.h:29, from httpserver.cpp:9: /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/detail/lwm_win32_cs.hpp:68:7: note: ‘boost::signals2::mutex’ class mutex ^ httpserver.cpp:153:36: error: template argument 1 is invalid std::unique_lockstd::mutex lock(cs); ^ httpserver.cpp:153:42: error: invalid type in declaration before ‘(’ token std::unique_lockstd::mutex lock(cs); ^ httpserver.cpp:153:43: error: ‘cs’ was not declared in this scope std::unique_lockstd::mutex lock(cs); ^ httpserver.cpp: At global scope: httpserver.cpp:439:6: error: ‘thread’ in namespace ‘std’ does not name a type std::thread threadHTTP; ^ httpserver.cpp:440:19: error: aggregate ‘std::future<bool> threadResult’ has incomplete type and cannot be defined std::future<bool> threadResult; ^ httpserver.cpp: In function ‘bool StartHTTPServer()’: httpserver.cpp:447:67: error: variable ‘std::packaged_task<bool(event_base_, evhttp_)> task’ has initializer but incomplete type std::packaged_task<bool(event_base_, evhttp_)> task(ThreadHTTP); ^ httpserver.cpp:449:5: error: ‘threadHTTP’ was not declared in this scope threadHTTP = std::thread(std::move(task), eventBase, eventHTTP); ^ httpserver.cpp:449:18: error: ‘thread’ is not a member of ‘std’ threadHTTP = std::thread(std::move(task), eventBase, eventHTTP); ^ httpserver.cpp:452:9: error: ‘thread’ is not a member of ‘std’ std::thread rpc_worker(HTTPWorkQueueRun, workQueue); ^ httpserver.cpp:453:9: error: ‘rpc_worker’ was not declared in this scope rpc_worker.detach(); ^ httpserver.cpp: In function ‘void StopHTTPServer()’: httpserver.cpp:493:9: error: ‘threadHTTP’ was not declared in this scope threadHTTP.join(); ^ httpserver.cpp: In instantiation of ‘WorkQueue<WorkItem>::ThreadCounter::ThreadCounter(WorkQueue<WorkItem>&) [with WorkItem = HTTPClosure]’: httpserver.cpp:120:34: required from ‘void WorkQueue<WorkItem>::Run() [with WorkItem = HTTPClosure]’ httpserver.cpp:356:16: required from here httpserver.cpp:83:51: error: ‘class WorkQueue<HTTPClosure>’ has no member named ‘cs’ std::lock_guardstd::mutex lock(wq.cs); ^ httpserver.cpp: In instantiation of ‘WorkQueue<WorkItem>::ThreadCounter::~ThreadCounter() [with WorkItem = HTTPClosure]’: httpserver.cpp:120:34: required from ‘void WorkQueue<WorkItem>::Run() [with WorkItem = HTTPClosure]’ httpserver.cpp:356:16: required from here httpserver.cpp:88:51: error: ‘class WorkQueue<HTTPClosure>’ has no member named ‘cs’ std::lock_guardstd::mutex lock(wq.cs); ^ httpserver.cpp:90:13: error: ‘class WorkQueue<HTTPClosure>’ has no member named ‘cond’ wq.cond.notify_all(); ^ Makefile:5033: recipe for target 'libbitcoin_server_a-httpserver.o' failed make[2]: _ [libbitcoin_server_a-httpserver.o] Error 1 make[2]: *** Waiting for unfinished jobs.... CCLD libsecp256k1.la libtool: link: warning: undefined symbols not allowed in x86_64-w64-mingw32 shared libraries /usr/bin/x86_64-w64-mingw32-ar: u' modifier ignored sinceD' is the default (see `U') make[3]: Leaving directory '/home/nicolasdorier/bitcoin/src/secp256k1' make[2]: Leaving directory '/home/nicolasdorier/bitcoin/src' Makefile:8349: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory '/home/nicolasdorier/bitcoin/src' Makefile:677: recipe for target 'all-recursive' failed make: *** [all-recursive] Error 1 |

    — You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub #8511, or mute the thread https://github.com/notifications/unsubscribe-auth/ADm2gq9ef9AoB09zEUPS-Eku7TTTCL56ks5qfsx0gaJpZM4Jj2Qm.

  3. theuni commented at 6:25 PM on August 14, 2016: member

    Looks like it's just missing includes. Try adding:

    #include <mutex> #include <condition_variable>

  4. NicolasDorier commented at 1:11 AM on August 15, 2016: contributor

    @theuni strange, it does not help. Same issue.

  5. jonasschnelli added the label Windows on Aug 15, 2016
  6. jonasschnelli added the label Build system on Aug 15, 2016
  7. wbchen99 commented at 4:34 PM on September 4, 2016: none

    any update for this issue?

  8. sstone commented at 5:17 PM on September 4, 2016: contributor

    Does #8653 fix it for you ?

  9. wbchen99 commented at 2:48 AM on September 5, 2016: none

    Thanks for reply. When I did: sudo update-alternatives --config x86_64-w64-mingw32-gcc

    It seems missing " x86_64-w64-mingw32-gcc files /usr/bin/x86_64-w64-mingw32-gcc-5-posix "

    How to install posix version of x86_64-w64-mingw32-gcc on ubuntu?

  10. sstone commented at 9:09 AM on September 5, 2016: contributor

    Which version are you on ? On Ubuntu 16.04 you just need to install the toolchain:

    sudo apt-get install g++-mingw-w64-i686 mingw-w64-i686-dev g++-mingw-w64-x86-64 mingw-w64-x86-64-dev
    
  11. wbchen99 commented at 12:21 PM on September 5, 2016: none

    sudo update-alternatives --config x86_64-w64-mingw32-gcc

    Press <enter> to keep the current choice[*], or type selection number: 1 update-alternatives: using /usr/bin/x86_64-w64-mingw32-gcc-posix to provide /usr/bin/x86_64-w64-mingw32-gcc (x86_64-w64-mingw32-gcc) in manual mode update-alternatives: warning: skip creation of /usr/bin/x86_64-w64-mingw32-gcc-5 because associated file /usr/bin/x86_64-w64-mingw32-gcc-5-posix (of link group x86_64-w64-mingw32-gcc) doesn't exist

    I got this warning message! How to fit it?

  12. NicolasDorier commented at 5:55 AM on September 6, 2016: contributor

    On my side I did not tried again since I posted this error. It is very problematic because most of my tests are done on windows, but get busy on other stuff those last days. I'll test again later.

  13. sipa commented at 8:08 AM on September 6, 2016: member

    You'll need version 4.7 or later of mingw/gcc at least for those definitions. Which version are you using?

  14. NicolasDorier commented at 9:02 AM on September 6, 2016: contributor

    @sstone you are the man, #8653 fixed my issue.

  15. NicolasDorier closed this on Sep 6, 2016

  16. wbchen99 commented at 5:40 AM on September 8, 2016: none

    $ gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.4.0-6ubuntu1~16.04.2' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-5-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-5-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-5-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu Thread model: posix gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.2)

    That is the version of gcc

  17. sstone commented at 5:48 PM on September 9, 2016: contributor

    @wbchen99 this is just a warning, you should be able to select the posix compilers and cross-build bitcoind.exe and bitcoint-qt.exe. Does it work ? If it does, did you test the compiled binaries ?

  18. wbchen99 commented at 12:19 PM on September 19, 2016: none

    @sstone Sorry for late reply. I still met same problem. I tried previous version of "depends" directory and it worked fine for bitcoin 12.99. Same environments , gcc, g++ and libs. Not sure for these? Could you help?

  19. laanwj commented at 1:47 PM on September 19, 2016: member

    There are multiple serious issues with bitcoin core and newer mingw compilers, see #8653. For now the only recommendation I can make is to use an Ubuntu Trusty VM for building as is used for gitian and travis.

  20. TheKogs commented at 3:40 PM on March 20, 2018: none

    Sorry to bring that old topic back up, but is there maybe already a solution for this?

    I have the same issue compiling the bitcoin client under Debian Stretch using mingw-w64.

    I'm using the default packages from Debian stretch repository. And I also tried to switch to posix version with

    $ update-alternatives --config i686-w64-mingw32-gcc
    $ update-alternatives --config x86_64-w64-mingw32-gcc
    

    but the error still happens after cleaning and building everything again.

    My environment

    $ uname -a
    Linux 4.9.0-3-amd64 [#1](/bitcoin-bitcoin/1/) SMP Debian 4.9.30-2+deb9u5 (2017-09-19) x86_64 GNU/Linux
    
    $ gcc --version
    gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516
    
    $ dpkg-query -l | grep mingw
    ii  binutils-mingw-w64-i686                2.28-5+7.4+b4                  amd64        Cross-binutils for Win32 (x86) using MinGW-w64
    ii  binutils-mingw-w64-x86-64              2.28-5+7.4+b4                  amd64        Cross-binutils for Win64 (x64) using MinGW-w64
    ii  g++-mingw-w64                          6.3.0-14+19.3                  all          GNU C++ compiler for MinGW-w64
    ii  g++-mingw-w64-i686                     6.3.0-18+19.3+b3               amd64        GNU C++ compiler for MinGW-w64 targeting Win32
    ii  g++-mingw-w64-x86-64                   6.3.0-18+19.3+b3               amd64        GNU C++ compiler for MinGW-w64 targeting Win64
    ii  gcc-mingw-w64                          6.3.0-14+19.3                  all          GNU C compiler for MinGW-w64
    ii  gcc-mingw-w64-base                     6.3.0-18+19.3+b3               amd64        GNU Compiler Collection for MinGW-w64 (base package)
    ii  gcc-mingw-w64-i686                     6.3.0-18+19.3+b3               amd64        GNU C compiler for MinGW-w64 targeting Win32
    ii  gcc-mingw-w64-x86-64                   6.3.0-18+19.3+b3               amd64        GNU C compiler for MinGW-w64 targeting Win64
    ii  mingw-w64                              5.0.1-1                        all          Development environment targeting 32- and 64-bit Windows
    ii  mingw-w64-common                       5.0.1-1                        all          Common files for Mingw-w64
    ii  mingw-w64-i686-dev                     5.0.1-1                        all          Development files for MinGW-w64 targeting Win32
    ii  mingw-w64-x86-64-dev                   5.0.1-1                        all          Development files for MinGW-w64 targeting Win64
    
  21. TheKogs commented at 6:52 PM on March 20, 2018: none

    Solved the issue.

    Bitcoin uses g++, not gcc

    $ sudo update-alternatives --config x86_64-w64-mingw32-g++

    then select "2" for switching to posix and that's it. Cleaning the environment or rebuilding dependencies were not necesseary.

  22. globaltoken commented at 1:41 PM on June 27, 2019: none

    I can confirm that

    sudo update-alternatives --config x86_64-w64-mingw32-g++

    solved it for me as well.

    I have GCC 5.3.1, and those are enabled:

    • 0 /usr/bin/x86_64-w64-mingw32-g++-win32 60 auto mode 1 /usr/bin/x86_64-w64-mingw32-g++-posix 30 manual mode 2 /usr/bin/x86_64-w64-mingw32-g++-win32 60 manual mode

    where 0 was selected. (win32). It seems not to use posix, so just select the g++-posix edition.

    After that it compiled successfully.

  23. DrahtBot locked this on Dec 16, 2021

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-05-03 15:15 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me