2016-04-16 9 views
0

Ich brauche wirklich etwas Hilfe mit einer grundlegenden Frage hier bitte. Ich werde für immer aufhören, GCC zu lernen, da es so aussieht, als ob die Grundlagen für mich keinen Sinn ergeben. Ich habe Hunderte von Beiträgen gelesen und kann nicht herausfinden, wie ein Grund -std=c++11 Aufruf übergeben, um Arbeit zu bekommen über configureÜbergabe GCC Flag -std = C++ 11 CXXFLAGS oder CXX oder CFLAGS

In diesem Beispiel hat ich gcc 5.3 kompiliert haben und die meisten Programme kompilieren ok, zum Beispiel der Erstellung httpd von der Quelle funktioniert keine Probleme . Aber ich bekomme immer Fehler in Bezug auf was ich denke, ist -std=c++11. Alle Beiträge lese ich sagen -std=c++11 passieren und ich habe versucht

CXXFLAGS=-std=c++11 
CXX=-std=c++11 
CFLAGS=-std=c++11 

aber die Fehler bestehen bleiben.

ich jetzt versuchen, aspell und erhalten die folgenden Fehler zu kompilieren,

In file included from /home/mybin/include/algorithm:62:0, 
       from /home/atmp/aspell-0.60.6.1/common/string.hpp:13, 
       from /home/atmp/aspell-0.60.6.1/common/indiv_filter.hpp:12, 
       from /home/atmp/aspell-0.60.6.1/modules/filter/email.cpp:9: 
/home/mybin/include/bits/stl_algo.h: In function ‘void std::random_shuffle(_RAIter, _RAIter)’: 
/home/mybin/include/bits/stl_algo.h:4448:8: error: ‘rand’ is not a member of ‘std’ 
     + std::rand() % ((__i - __first) + 1); 

algorithm scheint korrekt aus der gcc5.3 Kompilierung installiert zu haben. Bitte weisen Sie mich in die richtige Richtung, um diese Art von Fehlern zu beheben.

Habe ich eine Kompilierungsoption beim Kompilieren von GCC vermisst?

+0

Sie würden 'CXXFLAGS' im' Makefile' angeben; Der Wert wird dann als Befehlszeilenoption an 'g ++' übergeben. Aber da das 'Makefile' vom' configure' Skript automatisch erzeugt wird, geht es in Ihrer Frage wirklich um Autotools, nicht um gcc. –

+0

Ich wusste nicht, GCC kompilierte Sprüche :) – melak47

Antwort

1

std::rand ist in <cstdlib> definiert, und es hat nichts mit C++ 11 zu tun, dieser Header war dort vor langer Zeit. Überprüfen Sie, ob es in der Quelle #include d ist.

+0

danke für den Zeiger, zog ich diese Schlussfolgerung aufgrund einer Reihe von anderen Beiträge darauf hin, dass C++ 11 hinzugefügt werden musste a s aflag.i wird für diese einbeziehen. Danke Kunst –

+0

Ich habe gesucht und habe immer noch keine Ahnung was zu suchen ist. "In der Quelle enthalten". Auf welche Quelle beziehen Sie sich? Ich habe 'cstdlib' im Hauptverzeichnis/include / –

Verwandte Themen