我有 crt284utest.c 和 crt_284u.so 文件。在 crt284utest.c 文件中,我使用了 dlopen()、dlclose()、dlsym()。现在我尝试使用以下命令进行编译: gcc c -O crt284utest.c 编译上述命令时,报错如下: gcc.real: c: 没有这样的文件或目录 进而 gcc crt_284u.o -ldl -o crt284utest 编译上述命令时,报错如下: gcc.real: crt_284u.o: 没有这样的文件或目录
最佳答案
这里介绍如何使用 gcc 在 linux 中进行编译::
$ gcc -ofirstprogramfirstprogram.c
如果您的文件名为firstprogram.c,则键入“-ofirstprogram”作为gcc 的参数。这基本上是 gcc 将创建的可执行文件的建议名称。如果您输入类似以下内容
$ gccfirstprogram.c
您将在与源 C 文件相同的目录中找到 a.out。这是 gcc 创建的可执行文件的默认名称。当您在一个目录中编译许多程序时,这会产生问题。因此,您可以使用 -o 选项后跟可执行文件的名称来覆盖它
$ gcc -o 你好第二个程序.c
将为名为 secondaryprogram.c 的源代码创建一个名为 hello 的可执行文件
运行您创建的可执行文件就像在提示符下键入以下内容一样简单。
$ ./firstprogram 或者 $ ./你好
关于c - 如何在linux中链接编译.c和.so文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19130541/