
Ich versuche, autoconf
ein Skript zu erstellen configure
. Einige der Header, die ich überprüfen möchte, erfordern jedoch zusätzliche Compiler-Flags (z. B. c++11
). Mit der Antwort kann ich das teilweise erreichenHierwobei die entsprechenden Zeilen in der Datei so aussehen configure.ac
.
AX_CXX_COMPILE_STDCXX_11(,[mandatory])
AC_CHECK_HEADER("CL/cl2.hpp")
aber das std=gnu++11
Flag wird nicht an den Vorverarbeitungsschritt weitergegeben, AC_CHECK_HEADERS
wodurch ich das seltsame Ergebnis erhalte, dass es verwendbar, aber nicht vorhanden ist:
checking CL/cl2.hpp usability... yes
checking CL/cl2.hpp presence... no
Ein Blick in die config.log
Anzeige zeigt folgende Zeilen:
configure:3423: checking CL/cl2.hpp presence
configure:3423: g++ -E conftest.cpp
In file included from conftest.cpp:19:0
/usr/include/CL/cl2.hpp:442:2: error #error Visual studio 2013 or another C++11-supported compiler required
wo ich deutlich sehen kann, dass das C++-Flag nicht verwendet wird. Wie kann ich erreichen, dass in diesen Präprozessorschritten Compiler-Flags verwendet werden?
BEARBEITEN
Ich kann dies manuell umgehen, indem ich es CXXCPP
beim Ausführen manuell einstelle configure
, aber ich möchte, dass es ausgeführt wird, ohne dass der Endbenutzer dies wissen muss.
./configure CXXCPP="g++ -E -std=gnu++11"
Antwort1
Die aktuelle Lösung, die ich gefunden habe, besteht darin, Folgendes manuell hinzuzufügen:
CXXCPP="g++ -E -std=gnu++11"
direkt zur configure.ac
Datei. Über weitere Antworten freue ich mich.
Antwort2
Ich musste die Konfiguration wie folgt ausführen:
./configure CCFLAGS="-std=c++11" CXXFLAGS="-std=c++11" CXXCPP="-std=c++11"