当前位置: 首页 > 知识库问答 >
问题:

编译 php,报错ld: symbol(s) not found for architecture arm64?

袁运良
2024-08-01

报错信息如下:

image.png

在网上查找方案,没有找到有价值的信息,请问应该如何解决这种情况呢?

共有2个答案

章飞虎
2024-08-01

你是不是按照错包了,你去下载arm64的包

子车劲
2024-08-01

遇到 ld: symbol(s) not found for architecture arm64 这类链接错误时,通常意味着你的程序或某个库在编译时没有正确地针对 Apple Silicon (M1 或更高版本的 ARM 架构) 进行编译。这里有几个步骤可以尝试解决这个问题:

1. 确认编译环境

确保你的开发环境已经为 ARM 架构做了优化。如果你使用的是 Homebrew,可以通过以下命令确保你的包管理器已经更新并且支持 ARM 架构:

brew update
brew upgrade

2. 检查 PHP 版本和依赖

确保你安装的 PHP 版本和所有相关依赖都是为 ARM 架构编译的。你可以从 PHP 官网或使用如 Homebrew 这样的包管理器安装 ARM 架构的 PHP。

3. 编译 PHP 时使用正确的配置

如果你从源代码编译 PHP,确保使用了正确的配置选项来支持 ARM 架构。通常,这不需要额外的配置,因为现代的编译系统(如 autoconf 和 configure 脚本)会检测并设置正确的架构。但如果你手动指定了某些编译选项,确保它们不包含任何可能导致问题的架构特定选项。

4. 检查外部库

如果你的 PHP 编译依赖于外部库(如 OpenSSL, MySQL, GD 等),确保这些库也是为 ARM 架构编译的。你可以使用如下命令来安装或更新这些库(以 OpenSSL 为例):

brew install openssl

5. 清理并重新编译

有时候,旧的编译文件或配置可能会干扰新的编译过程。尝试清理之前的编译结果并重新编译:

make clean
./configure [你的配置选项]
make
sudo make install

6. 检查链接器标志

检查你的 Makefile 或编译脚本中是否有任何特定的链接器(ld)标志,这些标志可能指定了错误的架构。通常,这些标志是自动生成的,但如果你手动修改了它们,可能会遇到问题。

7. 查看具体的错误信息

仔细查看链接器错误输出的详细信息,看看是哪个符号或库导致了问题。这可以帮助你确定是哪个组件或库需要更新或重新编译。

8. 寻求社区帮助

如果以上步骤都不能解决问题,你可以考虑在 Stack Overflow 或 PHP 的相关论坛发帖求助。在发帖时,提供尽可能多的信息,包括你的操作系统版本、PHP 版本、编译命令、完整的错误输出等。

希望这些步骤能帮助你解决问题!

 类似资料:
  • 背景: 在vue3+ts+vite项目中: vue文件:import.meta.env代码能正常访问 ts文件:import.meta.env文件有编译报错 尝试1: 在tsconfig.json中添加"types": [ "vite/client" ]

  • 主要内容:gcc -S指令我们知道,从 C、C++源代码生成可执行文件需要经历 4 个过程,分别为预处理、编译、汇编和链接。其中,《 GCC -E选项:对源程序做预处理操作》一节以 demo.c 源程序文件为例,演示了如何使用 GCC 执行预处理操作,并生成了相应的 demo.i 预处理文件。 [root@bogon demo]# cat demo.c #include <stdio.h> int main(){    p

  • 具体操作如下 1.linux-4.4.76$ vi Makefile ARCH ?= arm CROSS_COMPILE ?= arm-none-linux-gnueabi- 2.make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm vexpress_defconfig 3.make CROSS_COMPILE=arm-linux-gnueabi-

  • 本文向大家介绍编译PHP报错configure error Cannot find libmysqlclient under usr的解决方法,包括了编译PHP报错configure error Cannot find libmysqlclient under usr的解决方法的使用技巧和注意事项,需要的朋友参考一下 今天在64位Red Hat Enterprise Linux AS releas

  • 配置命令 make && make instll 之后复制到另一台mac上,并且将/Applications/xx/lib/libiconv/1.17 目录拷贝到目标mac上,运行 报错如下:

  • 我试图在openshift上使用http://www.sitepoint.com/nginx-php5-5-phalcon-openshift/编译phalcon php 一切正常,但我无法完成模块编译:没有错误,只是ssh会话正在关闭。 cd app-root/runtime/repo/cphalcon/build./install 创建libtool configure:正在创建。/confi