我在Alpine最新版本中静态地编译了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发布于 2022-06-20 13:22:36
我做到了。解决方案很简单。
只需将/usr/lib/libreadline.so*、/usr/lib/libncurses*.so*移动到另一个目录即可。编译后,将它们移回/usr/lib/。
https://stackoverflow.com/questions/72682944
复制相似问题