스크립트를 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"