这是我的代码:
// hello.c
#include<stdio.h>
int main(int argc, char **argv) {
return (0);
}
我在终端输入gcc hello.c -o -shared libhello.so
并获取:
gcc: error: libhello.so: No such file or directory
问题:如何使用一个命令行将.c文件编译为.so文件
更新:如果我用gcc hello.c -shared -o libhello.so
修复它,但我只是有些困惑,为什么错误信息是“gcc:错误:libhello.so:没有这样的文件或目录”,不是“gcc:错误:libhello.so:没有这样的文件或目录'-shared'”
答案 0 :(得分:1)
输出文件的名称必须紧跟-o
。试试这个:
gcc hello.c -shared -o libhello.so
答案 1 :(得分:1)
gcc -Wall -fPIC -shared -O -g hello.c -o libhello.so
共享对象应该(几乎)从不拥有main
函数。
PS。 gcc
的参数顺序非常重要!
答案 2 :(得分:0)
我不知道你为什么这样做。但也许gcc hello.c -shared -o libhello.so
。