concurrencpp
concurrencpp copied to clipboard
Failed to build on Windows(Mingw64)
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.
Is this master branch though? because this code is only in develop
I did download the code from the latest master branch and encountered the following build issue