/bin/sh /Users/zc/Desktop/php-7.0.33/libtool --silent --preserve-dup-deps --mode=compile cc -DHAVE_CONFIG_H -I/Users/zc/Desktop/php-7.0.33/ext/pcre/pcrelib -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 -Iext/pcre/ -I/Users/zc/Desktop/php-7.0.33/ext/pcre/ -DPHP_ATOM_INC -I/Users/zc/Desktop/php-7.0.33/include -I/Users/zc/Desktop/php-7.0.33/main -I/Users/zc/Desktop/php-7.0.33 -I/Users/zc/Desktop/php-7.0.33/ext/date/lib -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -I/opt/homebrew/opt/libiconv/include -I/Users/zc/Desktop/php-7.0.33/ext/sqlite3/libsqlite -I/Users/zc/Desktop/php-7.0.33/TSRM -I/Users/zc/Desktop/php-7.0.33/Zend -no-cpp-precomp -I/opt/homebrew/opt/libiconv/include -g -O2 -fvisibility=hidden -c /Users/zc/Desktop/php-7.0.33/ext/pcre/pcrelib/pcre_jit_compile.c -o ext/pcre/pcrelib/pcre_jit_compile.lo
In file included from /Users/zc/Desktop/php-7.0.33/ext/pcre/pcrelib/pcre_jit_compile.c:62:
In file included from /Users/zc/Desktop/php-7.0.33/ext/pcre/pcrelib/sljit/sljitLir.c:1566:
/Users/zc/Desktop/php-7.0.33/ext/pcre/pcrelib/sljit/sljitNativeARM_64.c:312:2: error: call to undeclared function 'sys_icache_invalidate'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
SLJIT_CACHE_FLUSH(code, code_ptr); ^
/Users/zc/Desktop/php-7.0.33/ext/pcre/pcrelib/sljit/sljitConfigInternal.h:301:2: note: expanded from macro 'SLJIT_CACHE_FLUSH'
sys_icache_invalidate((char*)(from), (char*)(to) - (char*)(from)) ^
In file included from /Users/zc/Desktop/php-7.0.33/ext/pcre/pcrelib/pcre_jit_compile.c:62:
In file included from /Users/zc/Desktop/php-7.0.33/ext/pcre/pcrelib/sljit/sljitLir.c:1566:
/Users/zc/Desktop/php-7.0.33/ext/pcre/pcrelib/sljit/sljitNativeARM_64.c:2042:2: error: call to undeclared function 'sys_icache_invalidate'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
SLJIT_CACHE_FLUSH(inst, inst + 4); ^
/Users/zc/Desktop/php-7.0.33/ext/pcre/pcrelib/sljit/sljitConfigInternal.h:301:2: note: expanded from macro 'SLJIT_CACHE_FLUSH'
sys_icache_invalidate((char*)(from), (char*)(to) - (char*)(from)) ^
In file included from /Users/zc/Desktop/php-7.0.33/ext/pcre/pcrelib/pcre_jit_compile.c:62:
In file included from /Users/zc/Desktop/php-7.0.33/ext/pcre/pcrelib/sljit/sljitLir.c:1566:
/Users/zc/Desktop/php-7.0.33/ext/pcre/pcrelib/sljit/sljitNativeARM_64.c:2049:2: error: call to undeclared function 'sys_icache_invalidate'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
SLJIT_CACHE_FLUSH(inst, inst + 4); ^
/Users/zc/Desktop/php-7.0.33/ext/pcre/pcrelib/sljit/sljitConfigInternal.h:301:2: note: expanded from macro 'SLJIT_CACHE_FLUSH'
sys_icache_invalidate((char*)(from), (char*)(to) - (char*)(from)) ^
3 errors generated.
make: * [ext/pcre/pcrelib/pcre_jit_compile.lo] Error 1
在编译 PHP 7.0.33 时遇到 sys_icache_invalidate
函数未声明的错误,通常是因为编译环境或者编译选项配置不正确。PHP 7.0.33 依赖的 pcre 库使用了 SLJIT(Simple Lightweight JIT Compiler)库,这个库在 ARM 架构上可能需要一些特定的系统调用或函数来刷新指令缓存。
解决这个问题,可以尝试以下步骤:
确保使用正确的编译器和 SDK:
确认你正在使用适合你的 macOS 版本的 Xcode Command Line Tools,并安装了对应的 SDK。可以通过以下命令来安装或更新它们:
xcode-select --install
或者通过 App Store 安装或更新 Xcode,并运行 Xcode 来确保 Command Line Tools 被正确安装。
./configure
脚本时,确保你指定了正确的编译选项和参数。有时,可能需要手动指定某些参数来适配你的系统架构。sys_icache_invalidate
:sys_icache_invalidate
应该由系统库提供,但编译器找不到它,你可以尝试在你的编译环境中定义这个函数。这通常不是一个推荐的做法,因为它可能涉及到对底层系统调用的直接操作,这可能会带来兼容性和稳定性问题。使用预编译的二进制包:
如果上述方法都不奏效,考虑使用预编译的 PHP 二进制包,比如通过 Homebrew 安装 PHP,这样可以避免编译过程中可能遇到的复杂问题。
brew install php@7.0
请注意,php@7.0
公式可能不再被 Homebrew 维护,因此你可能需要查找其他可靠的源。
由于 sys_icache_invalidate
函数通常是与特定架构和操作系统版本相关的系统调用,因此确保你的编译环境与你尝试编译的 PHP 版本兼容是非常重要的。如果上述方法都不能解决问题,可能需要更深入地研究你的编译环境和相关依赖库,或者寻找其他用户是否遇到过类似的问题,并参考他们的解决方案。
当我做,与: 配置摘要: 调试级别:fastdebug HS调试级别:快速调试 JVM变体:服务器 JVM特性:服务器:'aot cds cmsgc编译器1编译器2 dtrace Epsilong C g1gc graal jfr jni检查jvmci jvmti管理nmt并行GC串行GC服务vm结构' OpenJDK目标:操作系统:macosx,CPU架构:x86,地址长度:64 版本字符串:1
在macOS终端中运行时,出现以下错误。 PHP警告:preg_match():JIT编译失败:内存不足phar:///usr/local/bin/composer.phar/vendor/symfony/console/Application.php 在线755 在第755行PHP警告:preg_match():JIT编译失败:没有更多的内存在phar://usr/本地/bin/composer
macOS 安装 Docker Desktop CE 系统要求 Docker Desktop for Mac 要求系统最低为 macOS Sierra 10.12。 安装 使用 Homebrew 安装 Homebrew 的 Cask 已经支持 Docker Desktop for Mac,因此可以很方便的使用 Homebrew Cask 来进行安装: $ brew cask install doc
macos系统(m2max)在idea(2024.2专业版和教育版都试过)上本地编译代码通过(本地直接使用编译好的jar包 使用命令启动:java -jar --debug 命令启动报错循环依赖); 但是使用编译后的jar包发布线上后,启动后报错循环依赖,同样环境和项目win10上编译后正常发布线上并启动。。。。。 排查问题: (1)排查了maven(使用3.9.2)和jdk(1.8)并没有发现什
Electron有API来配置macOS Dock中的应用程序图标。 A macOS-only API exists to create a custom dock menu, but Electron also uses the app's dock icon to implement cross-platform features like recent documents and appli
Platform setup iOS setup Install Xcode Set up the iOS simulator Create and run a simple Flutter app Deploy to iOS devices Android setup Install Android Studio Set up your Android device Set up the And