Autoconf - Setzen von Compiler-Flags für Prüfungen

Autoconf - Setzen von Compiler-Flags für Prüfungen

Ich versuche, autoconfein 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++11Flag wird nicht an den Vorverarbeitungsschritt weitergegeben, AC_CHECK_HEADERSwodurch 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.logAnzeige 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 CXXCPPbeim 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.acDatei. Ü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"

verwandte Informationen