concurrencpp icon indicating copy to clipboard operation
concurrencpp copied to clipboard

Failed to build on Windows(Mingw64)

Open AstroAir opened this issue 10 months ago • 2 comments

Sorry to bother you, I tried to compile in the mingw64 environment of Windows 10, but encountered an error. Below is the Cmake information and compilation error. I am not sure where the problem is, and I hope to receive help

-- Building for: Ninja
-- The CXX compiler identification is GNU 13.2.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: C:/msys64/mingw64/bin/c++.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Configuring done (7.1s)
-- Generating done (0.0s)
-- Build files have been written to: C:/Users/Qrm/Downloads/concurrencpp-develop/build
[9/18] Building CXX object CMakeFiles/concurrencpp.dir/source/threads/atomic_wait.cpp.obj
FAILED: CMakeFiles/concurrencpp.dir/source/threads/atomic_wait.cpp.obj
C:\msys64\mingw64\bin\c++.exe  -isystem C:/Users/Qrm/Downloads/concurrencpp-develop/include -std=gnu++20 -fvisibility=hidden -fno-keep-inline-dllexport -MD -MT CMakeFiles/concurrencpp.dir/source/threads/atomic_wait.cpp.obj -MF CMakeFiles\concurrencpp.dir\source\threads\atomic_wait.cpp.obj.d -o CMakeFiles/concurrencpp.dir/source/threads/atomic_wait.cpp.obj -c C:/Users/Qrm/Downloads/concurrencpp-develop/source/threads/atomic_wait.cpp
C:/Users/Qrm/Downloads/concurrencpp-develop/source/threads/atomic_wait.cpp:130:76: error: 'atomic_comp_fn' has not been declared
  130 |         void wait(void* atom, const uint32_t old, std::memory_order order, atomic_comp_fn comp) {
      |                                                                            ^~~~~~~~~~~~~~
C:/Users/Qrm/Downloads/concurrencpp-develop/source/threads/atomic_wait.cpp:154:37: error: 'atomic_comp_fn' has not been declared
  154 |                                     atomic_comp_fn comp) {
      |                                     ^~~~~~~~~~~~~~
C:/Users/Qrm/Downloads/concurrencpp-develop/source/threads/atomic_wait.cpp: In member function 'void concurrencpp::details::atomic_wait_bucket::wait(void*, uint32_t, std::memory_order, int)':
C:/Users/Qrm/Downloads/concurrencpp-develop/source/threads/atomic_wait.cpp:132:26: error: 'comp' cannot be used as a function
  132 |                 if (!comp(atom, old, order)) {
      |                      ~~~~^~~~~~~~~~~~~~~~~~
C:/Users/Qrm/Downloads/concurrencpp-develop/source/threads/atomic_wait.cpp:137:26: error: 'comp' cannot be used as a function
  137 |                 if (!comp(atom, old, order)) {
      |                      ~~~~^~~~~~~~~~~~~~~~~~
C:/Users/Qrm/Downloads/concurrencpp-develop/source/threads/atomic_wait.cpp: In member function 'concurrencpp::details::atomic_wait_status concurrencpp::details::atomic_wait_bucket::wait_for(void*, uint32_t, std::chrono::milliseconds, std::memory_order, int)':
C:/Users/Qrm/Downloads/concurrencpp-develop/source/threads/atomic_wait.cpp:159:26: error: 'comp' cannot be used as a function
  159 |                 if (!comp(atom, old, order)) {
      |                      ~~~~^~~~~~~~~~~~~~~~~~
C:/Users/Qrm/Downloads/concurrencpp-develop/source/threads/atomic_wait.cpp:164:30: error: 'comp' cannot be used as a function
  164 |                     if (!comp(atom, old, order)) {
      |                          ~~~~^~~~~~~~~~~~~~~~~~
C:/Users/Qrm/Downloads/concurrencpp-develop/source/threads/atomic_wait.cpp:172:26: error: 'comp' cannot be used as a function
  172 |                 if (!comp(atom, old, order)) {
      |                      ~~~~^~~~~~~~~~~~~~~~~~
C:/Users/Qrm/Downloads/concurrencpp-develop/source/threads/atomic_wait.cpp: At global scope:
C:/Users/Qrm/Downloads/concurrencpp-develop/source/threads/atomic_wait.cpp:217:12: error: 'atomic_wait_table' has not been declared
  217 |     size_t atomic_wait_table::calc_table_size() noexcept {
      |            ^~~~~~~~~~~~~~~~~
C:/Users/Qrm/Downloads/concurrencpp-develop/source/threads/atomic_wait.cpp:227:12: error: 'atomic_wait_table' has not been declared
  227 |     size_t atomic_wait_table::index_for(const void* atom) const noexcept {
      |            ^~~~~~~~~~~~~~~~~
C:/Users/Qrm/Downloads/concurrencpp-develop/source/threads/atomic_wait.cpp:227:65: error: non-member function 'size_t concurrencpp::details::index_for(const void*)' cannot have cv-qualifier
  227 |     size_t atomic_wait_table::index_for(const void* atom) const noexcept {
      |                                                                 ^~~~~~~~
C:/Users/Qrm/Downloads/concurrencpp-develop/source/threads/atomic_wait.cpp: In function 'size_t concurrencpp::details::index_for(const void*)':
C:/Users/Qrm/Downloads/concurrencpp-develop/source/threads/atomic_wait.cpp:228:49: error: 'm_size' was not declared in this scope; did you mean '_msize'?
  228 |         return std::hash<const void*>()(atom) % m_size;
      |                                                 ^~~~~~
      |                                                 _msize
C:/Users/Qrm/Downloads/concurrencpp-develop/source/threads/atomic_wait.cpp: At global scope:
C:/Users/Qrm/Downloads/concurrencpp-develop/source/threads/atomic_wait.cpp:231:5: error: 'atomic_wait_table' does not name a type; did you mean 'atomic_wait_status'?
  231 |     atomic_wait_table::atomic_wait_table() : m_size(calc_table_size()) {
      |     ^~~~~~~~~~~~~~~~~
      |     atomic_wait_status
C:/Users/Qrm/Downloads/concurrencpp-develop/source/threads/atomic_wait.cpp:236:10: error: 'atomic_wait_table' has not been declared
  236 |     void atomic_wait_table::wait(void* atom, const uint32_t old, std::memory_order order, atomic_comp_fn comp) {
      |          ^~~~~~~~~~~~~~~~~
C:/Users/Qrm/Downloads/concurrencpp-develop/source/threads/atomic_wait.cpp:236:91: error: 'atomic_comp_fn' has not been declared
  236 |     void atomic_wait_table::wait(void* atom, const uint32_t old, std::memory_order order, atomic_comp_fn comp) {
      |                                                                                           ^~~~~~~~~~~~~~
C:/Users/Qrm/Downloads/concurrencpp-develop/source/threads/atomic_wait.cpp: In function 'void concurrencpp::details::wait(void*, uint32_t, std::memory_order, int)':
C:/Users/Qrm/Downloads/concurrencpp-develop/source/threads/atomic_wait.cpp:238:9: error: 'm_buckets' was not declared in this scope
  238 |         m_buckets[index].wait(atom, old, order, comp);
      |         ^~~~~~~~~
C:/Users/Qrm/Downloads/concurrencpp-develop/source/threads/atomic_wait.cpp: At global scope:
C:/Users/Qrm/Downloads/concurrencpp-develop/source/threads/atomic_wait.cpp:241:24: error: 'atomic_wait_table' has not been declared
  241 |     atomic_wait_status atomic_wait_table::wait_for(void* atom,
      |                        ^~~~~~~~~~~~~~~~~
C:/Users/Qrm/Downloads/concurrencpp-develop/source/threads/atomic_wait.cpp:245:52: error: 'atomic_comp_fn' has not been declared
  245 |                                                    atomic_comp_fn comp) {
      |                                                    ^~~~~~~~~~~~~~
C:/Users/Qrm/Downloads/concurrencpp-develop/source/threads/atomic_wait.cpp: In function 'concurrencpp::details::atomic_wait_status concurrencpp::details::wait_for(void*, uint32_t, std::chrono::milliseconds, std::memory_order, int)':
C:/Users/Qrm/Downloads/concurrencpp-develop/source/threads/atomic_wait.cpp:248:16: error: 'm_buckets' was not declared in this scope
  248 |         return m_buckets[index].wait_for(atom, old, ms, order, comp);
      |                ^~~~~~~~~
C:/Users/Qrm/Downloads/concurrencpp-develop/source/threads/atomic_wait.cpp: At global scope:
C:/Users/Qrm/Downloads/concurrencpp-develop/source/threads/atomic_wait.cpp:251:10: error: 'atomic_wait_table' has not been declared
  251 |     void atomic_wait_table::notify_one(const void* atom) noexcept {
      |          ^~~~~~~~~~~~~~~~~
C:/Users/Qrm/Downloads/concurrencpp-develop/source/threads/atomic_wait.cpp: In function 'void concurrencpp::details::notify_one(const void*)':
C:/Users/Qrm/Downloads/concurrencpp-develop/source/threads/atomic_wait.cpp:253:9: error: 'm_buckets' was not declared in this scope
  253 |         m_buckets[index].notify_one(atom);
      |         ^~~~~~~~~
C:/Users/Qrm/Downloads/concurrencpp-develop/source/threads/atomic_wait.cpp: At global scope:
C:/Users/Qrm/Downloads/concurrencpp-develop/source/threads/atomic_wait.cpp:256:10: error: 'atomic_wait_table' has not been declared
  256 |     void atomic_wait_table::notify_all(const void* atom) noexcept {
      |          ^~~~~~~~~~~~~~~~~
C:/Users/Qrm/Downloads/concurrencpp-develop/source/threads/atomic_wait.cpp: In function 'void concurrencpp::details::notify_all(const void*)':
C:/Users/Qrm/Downloads/concurrencpp-develop/source/threads/atomic_wait.cpp:258:9: error: 'm_buckets' was not declared in this scope
  258 |         m_buckets[index].notify_all(atom);
      |         ^~~~~~~~~
C:/Users/Qrm/Downloads/concurrencpp-develop/source/threads/atomic_wait.cpp: At global scope:
C:/Users/Qrm/Downloads/concurrencpp-develop/source/threads/atomic_wait.cpp:261:5: error: 'atomic_wait_table' does not name a type; did you mean 'atomic_wait_status'?
  261 |     atomic_wait_table& atomic_wait_table::instance() {
      |     ^~~~~~~~~~~~~~~~~
      |     atomic_wait_status
[14/18] Building CXX object CMakeFiles/concurrencpp.dir/source/threads/async_lock.cpp.obj
ninja: build stopped: subcommand failed.

AstroAir avatar Apr 30 '24 09:04 AstroAir

Is this master branch though? because this code is only in develop

David-Haim avatar May 05 '24 02:05 David-Haim

I did download the code from the latest master branch and encountered the following build issue

AstroAir avatar May 05 '24 10:05 AstroAir