gcc:错误:libhello.so:没有这样的文件或目录

时间:2014-11-04 09:26:02

标签: c gcc

这是我的代码:

// 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'”

3 个答案:

答案 0 :(得分:1)

输出文件的名称必须紧跟-o。试试这个:

gcc hello.c -shared -o libhello.so

答案 1 :(得分:1)

BTW,共享库应该包含position independent code。所以用

编译它
gcc  -Wall -fPIC -shared -O -g hello.c -o libhello.so

另请参阅thisthat个答案。

共享对象应该(几乎)从不拥有main函数。

PS。 gcc的参数顺序非常重要!

答案 2 :(得分:0)

我不知道你为什么这样做。但也许gcc hello.c -shared -o libhello.so