gpt4 book ai didi

php - 从 PHP 调用 C/C++ 库函数 - 如何将 -std=c+11 发送到编译器

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:38:47 25 4
gpt4 key购买 nike

我正在构建 PHP 的 C++ 扩展,使用来自 this post 的 config.m4 模板和 this article .

我需要使用标准的 C++11 来编译我的类,所以我将 EXTRA_FLAGS 子句用作:

EXTRA_FLAGS="-std=c++11"

在我的 config.m4 中。最终代码:

PHP_ARG_ENABLE(vehicles,
[Whether to enable the "vehicles" extension],
[ --enable-vehicles Enable "vehicles" extension support])

if test $PHP_VEHICLES != "no"; then
EXTRA_FLAGS="-std=c++11"
PHP_REQUIRE_CXX()
PHP_SUBST(VEHICLES_SHARED_LIBADD)
PHP_ADD_LIBRARY(stdc++, 1, VEHICLES_SHARED_LIBADD)
PHP_NEW_EXTENSION(vehicles, vehicles.cc car.cc, $ext_shared)
fi

这根本不起作用(编译器没有收到额外的标志)。然后我假设这个 EXTRA_FLAGS 参数根本与编译器无关,而是与脚本相关....

我如何向 g++ 编译器发送一个标志,让他们使用 C++11?

感谢您的帮助。

最佳答案

我找到了解决方案。这是最终代码:

PHP_ARG_ENABLE(vehicles,
[Whether to enable the "vehicles" extension],
[ --enable-vehicles Enable "vehicles" extension support])

if test $PHP_VEHICLES != "no"; then
CXX_FLAGS="-std=c++0x"
PHP_REQUIRE_CXX()
PHP_SUBST(VEHICLES_SHARED_LIBADD)
PHP_ADD_LIBRARY(stdc++, 1, VEHICLES_SHARED_LIBADD)
PHP_NEW_EXTENSION(vehicles, vehicles.cc car.cc, $ext_shared)
fi

确保 CXX_FLAGSPHP_REQUIRE_CXX() 之前,否则它将无法工作。

还有一个名为X_CXX_COMPILE_STDCXX_11([noext], [mandatory])的宏,其代码为here使该过程自动化。

关于php - 从 PHP 调用 C/C++ 库函数 - 如何将 -std=c+11 发送到编译器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31795948/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com