GCC:错误:libhello.so:没有这样的文件或目录
问题描述:
这里是我的代码:GCC:错误:libhello.so:没有这样的文件或目录
// 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:error:libhello.so:没有这样的文件或目录”,而不是“gcc:error:libhello.so:没有这样的文件或目录'-shared'“
答
顺便说一句,共享库应该包含position independent code。因此,与
gcc -Wall -fPIC -shared -O -g hello.c -o libhello.so
而共享对象应该(近)从不有main
函数。
PS。至gcc
的参数顺序很重要!
答
输出文件的名称必须直接跟在-o
之后。试试这个:
gcc hello.c -shared -o libhello.so
答
我不知道你为什么这么做。但也许gcc hello.c -shared -o libhello.so
。
'gcc hello.c -o -shared libhello.so'的意思是“编译文件'hello.c'和'libhello.so',并将结果放入文件'-shared'”。由于输出文件将在编译期间创建,因此编译器不会发出缺少警告。然而,源文件的存在对于编译成功是必要的,因此会发出错误消息。 – 2014-11-04 09:53:12