/bin/sh 未找到由 gcc 在 musl 工具链上编译的文件
File compiled by gcc on a musl toolchain not found by /bin/sh
我在 dockerhub 上试用了 muslcc 镜像,但无法运行 编译的 Hello World 程序。
我使用的图像是:muslcc/i686:x86_64-linux-musl(找到here)。我加载图像:
docker run -it --rm -v /path/to/local:/var muslcc/i686:x86_64-linux-musl
这样我就可以在我的本地机器上编码,并在 musl 图像上编译和测试。
我正在编译的程序是一个基本的 hello world:
#include<stdio.h>
int main(void){
puts("Hello world.");
return 0;
}
此文件另存为helloworld.c
I 运行 gcc -Wall helloworld.c
和获取 a.out
在同一目录中。做 ls -l
给我:
total 1068
-rwxr-xr-x 1 root root 7584 Jul 25 05:41 a.out
-rw-r--r-- 1 root root 76 Jul 25 05:27 helloworld.c
当我尝试 运行 a.out
时:./a.out
,我得到:
/bin/sh: ./a.out: not found
我也尝试指定一个输出文件,以防这是默认输出的一些问题,但没有成功。我也尝试过使用绝对路径,la /var/a.out
但也没有运气。
--
编辑:
- 我检查过
./
符号在 $PATH
好的,我通过向 gcc 添加 -static
标志修复了它:
gcc -static input.c -o output.out
我在 dockerhub 上试用了 muslcc 镜像,但无法运行 编译的 Hello World 程序。
我使用的图像是:muslcc/i686:x86_64-linux-musl(找到here)。我加载图像:
docker run -it --rm -v /path/to/local:/var muslcc/i686:x86_64-linux-musl
这样我就可以在我的本地机器上编码,并在 musl 图像上编译和测试。
我正在编译的程序是一个基本的 hello world:
#include<stdio.h>
int main(void){
puts("Hello world.");
return 0;
}
此文件另存为helloworld.c
I 运行 gcc -Wall helloworld.c
和获取 a.out
在同一目录中。做 ls -l
给我:
total 1068
-rwxr-xr-x 1 root root 7584 Jul 25 05:41 a.out
-rw-r--r-- 1 root root 76 Jul 25 05:27 helloworld.c
当我尝试 运行 a.out
时:./a.out
,我得到:
/bin/sh: ./a.out: not found
我也尝试指定一个输出文件,以防这是默认输出的一些问题,但没有成功。我也尝试过使用绝对路径,la /var/a.out
但也没有运气。
-- 编辑:
- 我检查过
./
符号在 $PATH
好的,我通过向 gcc 添加 -static
标志修复了它:
gcc -static input.c -o output.out