Есть заголовок:
https://github.com/fireice-uk/xmr-stak-cpu/blob/master/thdq.hpp
Есть измененные мьютексы для mingw:
https://github.com/meganz/mingw-std-threads
Я в файле thdq.hpp меняю заголовок на:
#pragma once
#undef _GLIBCXX_HAS_GTHREADS
#include <queue>
#include "mingw.thread.h"
#include "mingw.mutex.h"
#include "mingw.condition_variable.h"
В заголовок mingw.mutex.h также добавляю #pragma once
Дальше делаю:
cmake -DCMAKE_TOOLCHAIN_FILE=/home/blablabla/distfiles/cmake-toolchains/Toolchain-Ubuntu-mingw64.cmake -DMICROHTTPD_REQUIRED=OFF -DOpenSSL_REQUIRED=OFF ..
make
Выходят ошибки:
In file included from /usr/lib/gcc/x86_64-w64-mingw32/6.2-win32/include/c++/condition_variable:39:0,
from /home/user/xmr-stak-cpu/thdq.hpp:6,
from /home/user/xmr-stak-cpu/executor.h:2,
from /home/user/xmr-stak-cpu/cli-miner.cpp:24:
/usr/lib/gcc/x86_64-w64-mingw32/6.2-win32/include/c++/bits/std_mutex.h:132:10: error: redefinition of ‘struct std::defer_lock_t’
struct defer_lock_t { explicit defer_lock_t() = default; };
Как правильно избавляться от этой циркулярной пилы?