2010-09-07 71 views
2

dynlinktest.c的编译过程中它提供了以下错误:`cc`选项`-ldl`在下面的命令中做了什么?

的UniPro @ ubuguest:〜$ CC dynamiclinktest.c -o dynamiclinktest /tmp/ccli8dp2.o:在功能main': dynamiclinktest.c:(.text+0x53): undefined reference to的dlopen” dynamiclinktest.c :(的.text + 0×83):未定义参照dlsym' dynamiclinktest.c:(.text+0x109): undefined reference to dlclose” collect2:LD返回1退出状态

用cc dynlinktest.c后-o dynlinktest -ldl它运行。 我没有得到它为什么需要使用-ldl

edit1:在出错前留出空间。

+0

试试'man cc'。它会给你一些关于你的编译器及其选项的信息。 – harald 2010-09-07 08:25:35

+0

我在你的命令行和错误消息之前引入空格的原因是它们会正确格式化;这是Stack Overflow用于标记代码和逐字输出的约定。我建议你重新放置空格,以使错误消息更易于阅读。 – 2010-09-07 11:53:29

回答

5

-ldl包括对具有加载动态库的符号的库的引用(如dlopen)。