【发布时间】:2014-11-04 09:26:01
【问题描述】:
这是我的代码:
// 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: No such file or directory”,而不是“ gcc:错误:libhello.so:没有这样的文件或目录'-shared'”
【问题讨论】:
-
gcc hello.c -o -shared libhello.so表示“编译文件hello.c和libhello.so,并将结果放入文件-shared”。由于将在编译期间创建输出文件,因此编译器不会发出丢失该文件的警告。但是,源文件的存在是编译成功所必需的,因此会发出错误消息。