
Estou tentando usar autoconf
para criar um configure
script. No entanto, alguns dos cabeçalhos que desejo verificar requerem sinalizadores de compilador adicionais (por exemplo, c++11
). Posso chegar parcialmente lá com a respostaaquionde as linhas relevantes ficam assim no configure.ac
arquivo.
AX_CXX_COMPILE_STDCXX_11(,[mandatory])
AC_CHECK_HEADER("CL/cl2.hpp")
mas o std=gnu++11
sinalizador não é passado para a etapa de pré-processamento, AC_CHECK_HEADERS
onde termino com o resultado estranho, onde é utilizável, mas não está presente:
checking CL/cl2.hpp usability... yes
checking CL/cl2.hpp presence... no
Olhando nos config.log
shows as seguintes linhas:
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
onde posso ver claramente que o sinalizador C++ não está sendo usado. Como posso usar sinalizadores do compilador nessas etapas do pré-processador?
EDITAR
Posso contornar isso manualmente definindo CXXCPP
manualmente durante a execução configure
, mas gostaria que fosse executado sem que o usuário final precisasse saber disso.
./configure CXXCPP="g++ -E -std=gnu++11"
Responder1
A solução atual que encontrei é adicionar manualmente:
CXXCPP="g++ -E -std=gnu++11"
diretamente para o configure.ac
arquivo. Eu ficaria feliz em ouvir respostas adicionais.
Responder2
Eu tive que executar o configure assim:
./configure CCFLAGS="-std=c++11" CXXFLAGS="-std=c++11" CXXCPP="-std=c++11"