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"

관련 정보