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"

相關內容