Autoconf - 검사를 위한 컴파일러 플래그 설정

Autoconf - 검사를 위한 컴파일러 플래그 설정

autoconf스크립트를 작성하는 데 사용하려고 합니다 configure. 그러나 확인하려는 일부 헤더에는 추가 컴파일러 플래그가 필요합니다(예: c++11). 나는 대답을 부분적으로 얻을 수 있습니다여기파일에서 관련 줄은 다음과 같습니다 configure.ac.

AX_CXX_COMPILE_STDCXX_11(,[mandatory])
AC_CHECK_HEADER("CL/cl2.hpp")

하지만 플래그는 사용할 수 있지만 존재하지 않는 이상한 결과가 나오는 std=gnu++11전처리 단계로 전달되지 않습니다 .AC_CHECK_HEADERS

checking CL/cl2.hpp usability... yes
checking CL/cl2.hpp presence... no

다음 줄을 보면 config.log다음과 같습니다.

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

여기서 C++ 플래그가 사용되지 않고 있음을 분명히 알 수 있습니다. 이러한 전처리기 단계에서 컴파일러 플래그를 어떻게 사용할 수 있습니까?

편집하다

CXXCPP실행할 때 수동 으로 설정하여 이 문제를 수동으로 해결할 수 있지만 configure최종 사용자가 이를 알 필요 없이 실행되도록 하고 싶습니다.

./configure CXXCPP="g++ -E -std=gnu++11"

답변1

내가 생각해낸 현재 해결책은 다음을 수동으로 추가하는 것입니다.

CXXCPP="g++ -E -std=gnu++11"

파일 에 직접 configure.ac. 추가 답변을 듣고 싶습니다.

답변2

다음과 같이 구성을 실행해야 했습니다.

./configure CCFLAGS="-std=c++11" CXXFLAGS="-std=c++11" CXXCPP="-std=c++11"

관련 정보