LINUX.ORG.RU

Старая проблема кросскомпиляции.‘mutex’ is not a member of ‘std’

 , ,


0

1

Всем привет!

Короче, error:‘mutex’ is not a member of ‘std’ при сборке приложения при помощи mxe и при помощи стандартного mingw из репозиториев дебиана.

Нашел тему полуторагодовой давности, которая в общем и целом повторяет это же поведение, только на самосборном компилере.

Вопрос в другом: неужели за 2 года в живом проекте до сих пор никто не включил треды или я что-то делаю не так?

пытаюсь скомпилить тот же код:

[quote] x86_64-w64-mingw32.static-g++ -std=c++1z -pthread test.cpp -o test.exe[br] cat test.cpp[br][/quote]#include <mutex>

void foo()
{
    std::mutex m;
}

int main(){
        return 0;
}

> $ x86_64-w64-mingw32.static-g++ -v
Using built-in specs.
COLLECT_GCC=x86_64-w64-mingw32.static-g++
COLLECT_LTO_WRAPPER=/home/builder/mxe/usr/libexec/gcc/x86_64-w64-mingw32.static/5.4.0/lto-wrapper
Target: x86_64-w64-mingw32.static
Configured with: /home/builder/mxe/tmp-gcc-x86_64-w64-mingw32.static/gcc-5.4.0/configure ac_cv_prog_HAVE_DOXYGEN=false --enable-doc=no --enable-gtk-doc=no --enable-gtk-doc-html=no --enable-gtk-doc-pdf=no --docdir=/home/builder/mxe/tmp-gcc-x86_64-w64-mingw32.static/gcc-5.4.0.build_.sink --infodir=/home/builder/mxe/tmp-gcc-x86_64-w64-mingw32.static/gcc-5.4.0.build_.sink --mandir=/home/builder/mxe/tmp-gcc-x86_64-w64-mingw32.static/gcc-5.4.0.build_.sink --with-html-dir=/home/builder/mxe/tmp-gcc-x86_64-w64-mingw32.static/gcc-5.4.0.build_.sink --disable-doxygen --target=x86_64-w64-mingw32.static --build=x86_64-pc-linux-gnu --prefix=/home/builder/mxe/usr --libdir=/home/builder/mxe/usr/lib --enable-languages=c,c++,objc,fortran --enable-version-specific-runtime-libs --with-gcc --with-gnu-ld --with-gnu-as --disable-nls --disable-shared --disable-multilib --without-x --disable-win32-registry --enable-threads=win32 --enable-libgomp --with-gmp=/home/builder/mxe/usr/x86_64-pc-linux-gnu --with-isl=/home/builder/mxe/usr/x86_64-pc-linux-gnu --with-mpc=/home/builder/mxe/usr/x86_64-pc-linux-gnu --with-mpfr=/home/builder/mxe/usr/x86_64-pc-linux-gnu --with-as=/home/builder/mxe/usr/bin/x86_64-w64-mingw32.static-as --with-ld=/home/builder/mxe/usr/bin/x86_64-w64-mingw32.static-ld --with-nm=/home/builder/mxe/usr/bin/x86_64-w64-mingw32.static-nm
Thread model: win32
gcc version 5.4.0 (GCC)
★★

А если
-std=c++11 ?

ymuv ★★★★ ()

Thread model: win32

В этом твоя проблема. x86_64-w64-mingw32-g++-posix компилирует код без ошибок.

anonymous ()

Используй не

x86_64-w64-mingw32.static-g++
А
x86_64-w64-mingw32.static.posix-g++

fsb4000 ★★★★★ ()
Ответ на: комментарий от EXL

Он в отличие от всех остальных собирает правильный кросс-компилятор. В дебиланах/убунтах только недавно научились и то я сомневаюсь.

a1batross ★★★★★ ()
Ответ на: комментарий от i-rinat

Пасиб. За месяц память стерлась/частично решилось общением напрямую с разрабами.

aido ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.