添加` - with-readline“
我用Alpine Linux最新版本编译了PHP 8.1.7,并使用以下命令进行了。
./configure LDFLAGS=-static --disable-all --enable-cli --enable-mbstring --enable-static=yes
sed -ie 's/-export-dynamic//g' "Makefile" && \
sed -ie 's/-o $(SAPI_CLI_PATH)/-all-static -o $(SAPI_CLI_PATH)/g' "Makefile"
make LDFLAGS="-ldl" -j12
make install
然后添加读取线。
apk add readline readline-dev readline-static ncurses-static ncurses-dev
./configure LDFLAGS=-static --disable-all --enable-cli --enable-mbstring --enable-static=yes --with-readline
错误消息在这里。
checking for libedit readline replacement... no
checking for readline support... yes
checking for tgetent in -lncurses... no
checking for tgetent in -ltermcap... no
checking for readline in -lreadline... no
configure: error: readline library not found
和config.log
部分是
configure:84994: checking for tgetent in -lncurses
configure:85017: cc -o conftest -g -O2 -fvisibility=hidden -static conftest.c -lncurses -lrt -lm >&5
/usr/lib/gcc/x86_64-alpine-linux-musl/10.3.1/../../../../x86_64-alpine-linux-musl/bin/ld: cannot find -lncurses
collect2: error: ld returned 1 exit status
configure:85027: result: no
configure:85059: checking for tgetent in -ltermcap
configure:85082: cc -o conftest -g -O2 -fvisibility=hidden -static conftest.c -ltermcap -lrt -lm >&5
/usr/lib/gcc/x86_64-alpine-linux-musl/10.3.1/../../../../x86_64-alpine-linux-musl/bin/ld: cannot find -ltermcap
collect2: error: ld returned 1 exit status
configure:85092: result: no
configure:85235: checking for readline in -lreadline
configure:85258: cc -o conftest -g -O2 -fvisibility=hidden -Wl,-rpath,/usr/local/lib -L/usr/local/lib -static conftest.c -lreadline -lrt -lm >&5
/usr/lib/gcc/x86_64-alpine-linux-musl/10.3.1/../../../../x86_64-alpine-linux-musl/bin/ld: /usr/local/lib/libreadline.a(display.o): in function `_rl_move_cursor_r
elative':
/root/static-php-cli/docker/source/readline-8.1/display.c:2805: undefined reference to `tputs'
/usr/lib/gcc/x86_64-alpine-linux-musl/10.3.1/../../../../x86_64-alpine-linux-musl/bin/ld: /usr/local/lib/libreadline.a(display.o): in function `_rl_move_vert':
/root/static-php-cli/docker/source/readline-8.1/display.c:2857: undefined reference to `tputs'
/usr/lib/gcc/x86_64-alpine-linux-musl/10.3.1/../../../../x86_64-alpine-linux-musl/bin/ld: /usr/local/lib/libreadline.a(terminal.o):/root/static-php-cli/docker/source/readline-8
.1/terminal.c:764: more undefined references to `tputs' follow
collect2: error: ld returned 1 exit status
configure:85268: result: no
configure:85381: error: readline library not found
I compiled php 8.1.7 statically in Alpine Linux latest version, and I made it with following command.
./configure LDFLAGS=-static --disable-all --enable-cli --enable-mbstring --enable-static=yes
sed -ie 's/-export-dynamic//g' "Makefile" && \
sed -ie 's/-o $(SAPI_CLI_PATH)/-all-static -o $(SAPI_CLI_PATH)/g' "Makefile"
make LDFLAGS="-ldl" -j12
make install
Then add readline.
apk add readline readline-dev readline-static ncurses-static ncurses-dev
./configure LDFLAGS=-static --disable-all --enable-cli --enable-mbstring --enable-static=yes --with-readline
Error messages here.
checking for libedit readline replacement... no
checking for readline support... yes
checking for tgetent in -lncurses... no
checking for tgetent in -ltermcap... no
checking for readline in -lreadline... no
configure: error: readline library not found
And config.log
part is
configure:84994: checking for tgetent in -lncurses
configure:85017: cc -o conftest -g -O2 -fvisibility=hidden -static conftest.c -lncurses -lrt -lm >&5
/usr/lib/gcc/x86_64-alpine-linux-musl/10.3.1/../../../../x86_64-alpine-linux-musl/bin/ld: cannot find -lncurses
collect2: error: ld returned 1 exit status
configure:85027: result: no
configure:85059: checking for tgetent in -ltermcap
configure:85082: cc -o conftest -g -O2 -fvisibility=hidden -static conftest.c -ltermcap -lrt -lm >&5
/usr/lib/gcc/x86_64-alpine-linux-musl/10.3.1/../../../../x86_64-alpine-linux-musl/bin/ld: cannot find -ltermcap
collect2: error: ld returned 1 exit status
configure:85092: result: no
configure:85235: checking for readline in -lreadline
configure:85258: cc -o conftest -g -O2 -fvisibility=hidden -Wl,-rpath,/usr/local/lib -L/usr/local/lib -static conftest.c -lreadline -lrt -lm >&5
/usr/lib/gcc/x86_64-alpine-linux-musl/10.3.1/../../../../x86_64-alpine-linux-musl/bin/ld: /usr/local/lib/libreadline.a(display.o): in function `_rl_move_cursor_r
elative':
/root/static-php-cli/docker/source/readline-8.1/display.c:2805: undefined reference to `tputs'
/usr/lib/gcc/x86_64-alpine-linux-musl/10.3.1/../../../../x86_64-alpine-linux-musl/bin/ld: /usr/local/lib/libreadline.a(display.o): in function `_rl_move_vert':
/root/static-php-cli/docker/source/readline-8.1/display.c:2857: undefined reference to `tputs'
/usr/lib/gcc/x86_64-alpine-linux-musl/10.3.1/../../../../x86_64-alpine-linux-musl/bin/ld: /usr/local/lib/libreadline.a(terminal.o):/root/static-php-cli/docker/source/readline-8
.1/terminal.c:764: more undefined references to `tputs' follow
collect2: error: ld returned 1 exit status
configure:85268: result: no
configure:85381: error: readline library not found
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我做到了。解决方案非常简单。
只需移动
/usr/lib/libreadline.so*
,/usr/lib/libncurses*.so*
到另一个目录。汇编后,将它们移回/usr/lib/
。I made it. And the solution is very simple.
Just move
/usr/lib/libreadline.so*
,/usr/lib/libncurses*.so*
to another directory. After compilation move them back to/usr/lib/
.