
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"