Code Monkey home page Code Monkey logo

Comments (6)

jingjingxyk avatar jingjingxyk commented on July 3, 2024

@netyum

未定义常量 GLOB_BRACE 的使用 in docker Alpine Linux

你的运行命令是啥?

from swoole-cli.

netyum avatar netyum commented on July 3, 2024
<?php
var_dump(GLOB_BRACE);
PHP Fatal error:  Uncaught Error: Undefined constant "GLOB_BRACE" in /root/1.php:3
Stack trace:
#0 {main}
  thrown in /root/1.php on line 3

php glob函数参数, 如果可以,不用Alpine Linux 作为 linux build镜像

from swoole-cli.

jingjingxyk avatar jingjingxyk commented on July 3, 2024

@netyum 看这里 https://www.php.net/manual/zh/function.glob.php 官网提供的信息: 注意: GLOB_BRACE 在一些非 GNU 系统上无效,比如 Solaris 和 Alpine Linux 。

你可以自己用 debian 构建 :

https://github.com/swoole/swoole-cli/tree/main/sapi/quickstart/linux 选择 run-debian-11-container.sh

问题所在: 其实是libc 的实现问题 (musl libc 和 glibc );

核心关键点: musl-libc 是硬性要求;

from swoole-cli.

netyum avatar netyum commented on July 3, 2024

你是说硬性指标只有musl-libc才能过静态编译?

from swoole-cli.

jingjingxyk avatar jingjingxyk commented on July 3, 2024

@netyum
你可以用glibc 编译几次就知道了。
glibc 可以静态编译,但是编译结果拷贝到 非 GNU 系统下就用不了。

比如 x86_64架构下debian里下,用glibc 静态编译出来的php 解释器,拷贝到alpine 系统下,用不了

你可以尝试下:

你在debian 或者 ubuntu 系统下: 把这个 改成 protected string $cCompiler = 'clang'; 换成gcc ,编译出来, GLOB_BRACE 未定义的问题,应该就解决了。

要使用libc
debian 系统下编译器组合:
cc=musl-gcc
cxx=gcc

或者:
cc=clang
cxx=clang++

alpine: 系统下编译器组合: (alpine 默认使用musl-gcc 替代gcc)
cc=gcc
cxx=g++

或者
cc=clang
cxx=clang++

from swoole-cli.

netyum avatar netyum commented on July 3, 2024

好的我试试,最终还是要依赖glibc

from swoole-cli.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.