
我正在嘗試使用它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"