From c4f828b30ab2efed1d8f9222ec32084b5f46affe Mon Sep 17 00:00:00 2001 From: tianfenghan Date: Fri, 8 May 2026 20:06:13 +0800 Subject: [PATCH] =?UTF-8?q?fix(build):=20=E7=BB=9F=E4=B8=80=E8=B0=83?= =?UTF-8?q?=E8=AF=95=E9=80=89=E9=A1=B9=E9=85=8D=E7=BD=AE=E5=B9=B6=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E8=87=AA=E5=AE=9A=E4=B9=89=E9=93=BE=E6=8E=A5=E5=99=A8?= =?UTF-8?q?=E6=A0=87=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将所有后端编译器的调试选项从 'debug' 统一更改为 'debug_info' - 在 GCC 和 Clang 后端移除重复的调试标志添加逻辑 - 在 CompilerBase 中添加对用户自定义 ldflags 的支持 - 确保所有平台的调试信息配置保持一致 --- src/Php/Backend/Clang.php | 9 ++------- src/Php/Backend/Gcc.php | 9 ++------- src/Php/Backend/Msvc.php | 2 +- src/Php/CompilerBase.php | 9 ++++++++- 4 files changed, 13 insertions(+), 16 deletions(-) diff --git a/src/Php/Backend/Clang.php b/src/Php/Backend/Clang.php index e7fab172..f6c27241 100644 --- a/src/Php/Backend/Clang.php +++ b/src/Php/Backend/Clang.php @@ -123,7 +123,7 @@ class Clang extends CompilerBackend $optimizeLevel = $options['optimize'] ?? 2; // 调试模式 - if (!empty($options['debug'])) { + if (!empty($options['debug_info'])) { $cmd .= ' -O0 -g'; } else { $cmd .= ' -O' . $optimizeLevel; @@ -172,7 +172,7 @@ class Clang extends CompilerBackend $optimizeLevel = $options['optimize'] ?? 0; // 调试模式 - if (!empty($options['debug'])) { + if (!empty($options['debug_info'])) { $cmd .= ' -O0 -g'; } else { $cmd .= ' -O' . $optimizeLevel; @@ -407,11 +407,6 @@ class Clang extends CompilerBackend } } else { // Unix/Linux/macOS - // 调试 - if (!empty($config['debug_info'])) { - $cmd .= ' -g'; - } - // 扩展模块选项 if (!empty($config['build_mode']) && $config['build_mode'] === 'ext') { $cmd .= ' -shared'; diff --git a/src/Php/Backend/Gcc.php b/src/Php/Backend/Gcc.php index 87035bac..96e21755 100644 --- a/src/Php/Backend/Gcc.php +++ b/src/Php/Backend/Gcc.php @@ -98,7 +98,7 @@ class Gcc extends CompilerBackend $cmd .= ' -O' . $optimizeLevel; // 调试信息 - if (!empty($options['debug'])) { + if (!empty($options['debug_info'])) { $cmd .= ' -g'; } @@ -132,7 +132,7 @@ class Gcc extends CompilerBackend $cmd .= ' -O' . $optimizeLevel; // 调试信息 - if (!empty($options['debug'])) { + if (!empty($options['debug_info'])) { $cmd .= ' -g'; } @@ -286,11 +286,6 @@ class Gcc extends CompilerBackend { $cmd = ''; - // 调试 - if (!empty($config['debug_info'])) { - $cmd .= ' -g'; - } - // 扩展模块选项 if (!empty($config['build_mode']) && $config['build_mode'] === 'ext') { $cmd .= ' -shared'; diff --git a/src/Php/Backend/Msvc.php b/src/Php/Backend/Msvc.php index b9df93aa..37f33535 100644 --- a/src/Php/Backend/Msvc.php +++ b/src/Php/Backend/Msvc.php @@ -182,7 +182,7 @@ class Msvc extends CompilerBackend $cmd .= ' /OUT:' . escapeshellarg($outputFile); // 调试信息 - if (!empty($options['debug'])) { + if (!empty($options['debug_info'])) { $cmd .= ' /DEBUG'; } diff --git a/src/Php/CompilerBase.php b/src/Php/CompilerBase.php index aef6172f..419de89b 100644 --- a/src/Php/CompilerBase.php +++ b/src/Php/CompilerBase.php @@ -2470,7 +2470,14 @@ class CompilerBase extends \PhpAot\Core\Translator $libraryPaths = array_merge($libraryPaths, $phpLibPaths); } - return $this->platform->getLibraryPathFlags($libraryPaths); + $flags = $this->platform->getLibraryPathFlags($libraryPaths); + + // 添加用户自定义的 ldflags + if (!empty($this->ldflags)) { + $flags .= ' ' . $this->ldflags; + } + + return $flags; } /**