首页 文章

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

提问于
浏览
0

这是我的代码:

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

question: 如何使用 one command line 将.c文件编译为.so文件

update: 如果我用 gcc hello.c -shared -o libhello.so 修复它,但我只是有些困惑,为什么错误信息是"gcc: error: libhello.so: No such file or directory",而不是"gcc: error: libhello.so: No such file or directory '-shared'"

3 回答

  • 1

    顺便说一句,共享库应该包含position independent code . 所以用它编译它

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

    另见thisthat答案 .

    共享对象应该(几乎)永远不会有 main 函数 .

    PS . gcc 的论据顺序非常重要!

  • 0

    输出文件的名称必须直接跟在 -o 之后 . 试试这个:

    gcc hello.c -shared -o libhello.so
    
  • 1

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

相关问题