2013-10-02 71 views
-2

我有crt284utest.c和crt_284u.so文件。在我使用dlopen(),dlclose(),dlsym()。现在我试图使用下面的命令来编译: GCCÇ-O crt284utest.c 虽然编制以上命令的误差如下: gcc.real:C:没有这样的文件或目录 然后 GCC crt_284u.o -ldl -o crt284utest 在编写上述命令的错误如下: gcc.real:crt_284u.o:如何链接和编译Linux中的.c和.so文件

+1

这不是'C',这是'-c'。现在你试着编译一个名为'c'的*源文件*,当你的意思是传递'-c'选项来告诉编译器创建一个目标文件。通过阅读错误信息应该很清楚。 –

+1

因为目标文件被命名为“crt284utest.o”而不是“crt_284u.o”。 –

回答

2

在这里你去如何在Linux下使用gcc ::

编译没有这样的文件或目录

$ gcc -o firstprogram firstprogram.c

如果您的文件被命名为firstprogram.c,则输入'-o firstprogram'作为gcc的参数。这基本上就是gcc可以创建的可执行文件的建议名称。如果你键入类似下面的

$ GCC firstprogram.c

你会是一种在同一目录C源文件的a.out。这是gcc创建的可执行文件的默认名称。当您在一个目录中编译许多程序时,这会造成问题。所以你用-o选项后面的可执行文件的名称来覆盖此

$ gcc的-o你好secondprogram.c

将由名称创建一个可执行你好你的源代码名为secondprogram.c

运行您创建的可执行文件与在提示符处键入以下内容一样简单。

$ ./firstprogram OR $ ./hello