这是我的代码:
// 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 回答
顺便说一句,共享库应该包含position independent code . 所以用它编译它
另见this和that答案 .
共享对象应该(几乎)永远不会有
main
函数 .PS .
gcc
的论据顺序非常重要!输出文件的名称必须直接跟在
-o
之后 . 试试这个:我不知道你为什么这样做 . 但也许
gcc hello.c -shared -o libhello.so
.