【发布时间】:2020-10-06 00:25:04
【问题描述】:
我正在尝试在 x86_64 Debian 内核 v4.19 上使用 musl 工具链 build MariaDB v10.3。我主要使用musl-gcc gcc 包装器来实现这一点。我安装的相关包如下:
-
musl(1.1.21-2):标准 C 库 -
musl-dev(1.1.21-2):标准C库开发文件 -
musl-tools(1.1.21-2):标准 C 库工具
为了构建 MariaDB,我首先运行:
CC=/usr/bin/musl-gcc cmake ../ -DWITHOUT_TOKUDB=1
干净地退出,然后我跟进:
make CC=/usr/bin/musl-gcc
以下消息的哪个错误:
Scanning dependencies of target strings-t
[ 12%] Building C object unittest/strings/CMakeFiles/strings-t.dir/strings-t.c.o
[ 12%] Linking CXX executable strings-t
/usr/bin/ld: cannot find -lgcc_s
/usr/bin/ld: cannot find -lgcc_s
collect2: error: ld returned 1 exit status
make[2]: *** [unittest/strings/CMakeFiles/strings-t.dir/build.make:94: unittest/strings/strings-t] Error 1
make[1]: *** [CMakeFiles/Makefile2:731: unittest/strings/CMakeFiles/strings-t.dir/all] Error 2
make: *** [Makefile:163: all] Error 2
现在我知道 musl 正在寻找的库 (libgcc_s.so) 位于 /lib/gcc/x86_64-linux-gnu/8/,但我尝试使用 LDFLAGS 包含库或将库符号链接到 /usr/lib/x86_64-linux-musl/ 的尝试失败了。
我要以正确的方式编译 MariaDB 吗?我想我做错了什么,因为 Alpine Linux 可以运行它。
【问题讨论】:
标签: gcc makefile cmake mariadb musl