mingw32 problem mit c++11 option



  • Hi,

    ich verwende mingw32.
    leider weiss icht nicht warum die c++11 option im makefile nicht erkannt wird!?

    CC = g++
    CFLAGS = -g -Wall -std=c++11 -pthread
    DFLAGS = -DDEBUG
    LFLAGS = -Wall $(DEBUG) -lpthread
    LIBDIR =
    LIBS =
    SRC = main.cpp
    OBJ = main.o
    TARGET = main
    
    all: $(TARGET) $(OBJ)
    
    $(TARGET): $(OBJ)
    	$(CC) $(CFLAGS) $(DFLAGS) -o $@ $(OBJ) $(LFLAGS)
    # -L$(LIBDIR) $(LIBS)
    
    .c.o:
    	$(CC) $(CFLAGS) $(DFLAGS) -c $<
    
    clean:
    	rm -f $(OBJ) $(TARGET)
    

    problem hier:

    g++    -c -o main.o main.cpp
    In file included from c:\qt\qt5.1.1\tools\mingw48_32\lib\gcc\i686-w64-mingw32\4.
    8.0\include\c++\thread:35:0,
                     from main.cpp:7:
    c:\qt\qt5.1.1\tools\mingw48_32\lib\gcc\i686-w64-mingw32\4.8.0\include\c++\bits\c
    ++0x_warning.h:32:2: error: #error This file requires compiler and library suppo
    rt for the ISO C++ 2011 standard. This support is currently experimental, and mu
    st be enabled with the -std=c++11 or -std=gnu++11 compiler options.
     #error This file requires compiler and library support for the \
      ^
    <builtin>: recipe for target 'main.o' failed
    mingw32-make: *** [main.o] Error 1
    

    g++ version:

    C:\Users\Stanje\Desktop\parser\bare_metal>g++ -v
    Using built-in specs.
    COLLECT_GCC=g++
    COLLECT_LTO_WRAPPER=c:/qt/qt5.1.1/tools/mingw48_32/bin/../libexec/gcc/i686-w64-m
    ingw32/4.8.0/lto-wrapper.exe
    Target: i686-w64-mingw32
    Configured with: ../../../src/gcc-4.8.0/configure --host=i686-w64-mingw32 --buil
    d=i686-w64-mingw32 --target=i686-w64-mingw32 --prefix=/mingw32 --with-sysroot=/t
    emp/x32-480-posix-dwarf-r2/mingw32 --enable-shared --enable-static --disable-mul
    tilib --enable-languages=c,c++,fortran,lto --enable-libstdcxx-time=yes --enable-
    threads=posix --enable-libgomp --enable-lto --enable-graphite --enable-checking=
    release --enable-fully-dynamic-string --enable-version-specific-runtime-libs --d
    isable-sjlj-exceptions --with-dwarf2 --disable-isl-version-check --disable-cloog
    -version-check --disable-libstdcxx-pch --disable-libstdcxx-debug --disable-boots
    trap --disable-rpath --disable-win32-registry --disable-nls --disable-werror --d
    isable-symvers --with-gnu-as --with-gnu-ld --with-arch=i686 --with-tune=generic
    --with-host-libstdcxx='-static -lstdc++' --with-libiconv --with-system-zlib --wi
    th-gmp=/temp/mingw-prereq/i686-w64-mingw32-static --with-mpfr=/temp/mingw-prereq
    /i686-w64-mingw32-static --with-mpc=/temp/mingw-prereq/i686-w64-mingw32-static -
    -with-isl=/temp/mingw-prereq/i686-w64-mingw32-static --with-cloog=/temp/mingw-pr
    ereq/i686-w64-mingw32-static --enable-cloog-backend=isl --with-pkgversion='rev2,
     Built by MinGW-builds project' --with-bugurl=http://sourceforge.net/projects/mi
    ngwbuilds/ CFLAGS='-O2 -pipe -I/temp/x32-480-posix-dwarf-r2/libs/include -I/temp
    /mingw-prereq/x32-zlib/include -I/temp/mingw-prereq/i686-w64-mingw32-static/incl
    ude' CXXFLAGS='-O2 -pipe -I/temp/x32-480-posix-dwarf-r2/libs/include -I/temp/min
    gw-prereq/x32-zlib/include -I/temp/mingw-prereq/i686-w64-mingw32-static/include'
     CPPFLAGS= LDFLAGS='-pipe -L/temp/x32-480-posix-dwarf-r2/libs/lib -L/temp/mingw-
    prereq/x32-zlib/lib -L/temp/mingw-prereq/i686-w64-mingw32-static/lib -L/temp/x32
    -480-posix-dwarf-r2/mingw32/opt/lib'
    Thread model: posix
    gcc version 4.8.0 (rev2, Built by MinGW-builds project)
    


  • Wie hier steht https://www.gnu.org/software/make/manual/html_node/Implicit-Variables.html müsste es heissen:

    CXXFLAGS = -g -Wall -std=c++11 -pthread
    

    und das

    CC = g++
    

    nimm raus. Du willst ja nicht C mit dem g++ kompilieren.



  • ok danke! sonst noch verbesserungen zum makefile?

    CXX = g++
    CXXFLAGS = -g -Wall -std=c++11 -pthread
    DFLAGS = -DDEBUG
    LFLAGS = -Wall $(DEBUG) -lpthread
    LIBDIR =
    LIBS =
    SRC = main.cpp
    OBJ = main.o
    TARGET = main
    
    all: $(TARGET) $(OBJ)
    
    $(TARGET): $(OBJ)
    	$(CXX) $(CXXFLAGS) $(DFLAGS) -o $@ $(OBJ) $(LFLAGS) 
    #-L$(LIBDIR) $(LIBS)
    
    .c.o:
    	$(CXX) $(CXXFLAGS) $(DFLAGS) -c $<
    
    clean:
    	rm -f $(OBJ) $(TARGET)
    


  • Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (alle ISO-Standards) in das Forum Compiler- und IDE-Forum verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • ich hab noch ein problem mit dem threading support:

    g++ -g -Wall -std=c++11 -pthread -D_GLIBCXX_USE_NANOSLEEP -D_GLIBCXX_USE_SCHED_Y
    IELD   -c -o main.o main.cpp
    main.cpp: In member function 'void VirtualSampler::sample(Tree*)':
    main.cpp:272:9: error: 'std::this_thread' has not been declared
        std::this_thread::sleep_for(std::chrono::milliseconds(10));
             ^
    main.cpp: In function 'int main()':
    main.cpp:286:2: error: 'thread' is not a member of 'std'
      std::thread thread1(&VirtualSampler::sample, &s, &t);
      ^
    main.cpp:286:14: error: expected ';' before 'thread1'
      std::thread thread1(&VirtualSampler::sample, &s, &t);
                  ^
    main.cpp:287:2: error: 'thread1' was not declared in this scope
      thread1.join();
      ^
    
    Tree t;
    t.createTree();
    
    VirtualSampler s;
    
    std::thread thread1(&VirtualSampler::sample, &s, &t);
    thread1.join();
    

    hab g++ 4.8:

    $ g++ -v
    Using built-in specs.
    COLLECT_GCC=c:\mingw\bin\g++.exe
    COLLECT_LTO_WRAPPER=c:/mingw/bin/../libexec/gcc/mingw32/4.8.1/lto-wrapper.exe
    Target: mingw32
    Configured with: ../gcc-4.8.1/configure --prefix=/mingw --host=mingw32 --build=m
    ingw32 --without-pic --enable-shared --enable-static --with-gnu-ld --enable-lto
    --enable-libssp --disable-multilib --enable-languages=c,c++,fortran,objc,obj-c++
    ,ada --disable-sjlj-exceptions --with-dwarf2 --disable-win32-registry --enable-l
    ibstdcxx-debug --enable-version-specific-runtime-libs --with-gmp=/usr/src/pkg/gm
    p-5.1.2-1-mingw32-src/bld --with-mpc=/usr/src/pkg/mpc-1.0.1-1-mingw32-src/bld --
    with-mpfr= --with-system-zlib --with-gnu-as --enable-decimal-float=yes --enable-
    libgomp --enable-threads --with-libiconv-prefix=/mingw32 --with-libintl-prefix=/
    mingw --disable-bootstrap LDFLAGS=-s CFLAGS=-D_USE_32BIT_TIME_T
    Thread model: win32
    gcc version 4.8.1 (GCC)
    

Anmelden zum Antworten