Unix “cc”选项“-ldl”在以下命令中起什么作用?
在编译dynlinktest.c时,它会出现以下错误: unipro@ubuguest:~$cc dynamiclinktest.c-o dynamiclinktest /tmp/ccli8dp2.o:在函数Unix “cc”选项“-ldl”在以下命令中起什么作用?,unix,x86,Unix,X86,在编译dynlinktest.c时,它会出现以下错误: unipro@ubuguest:~$cc dynamiclinktest.c-o dynamiclinktest /tmp/ccli8dp2.o:在函数main'中: dynamiclinktest.c:(.text+0x53):对dlopen'的未定义引用 dynamiclinktest.c:(.text+0x83):对dlsym'的未定义引用 dynamiclinktest.c:(.text+0x109):对dlclose'的未定义引用
main'中:
dynamiclinktest.c:(.text+0x53):对
dlopen'的未定义引用
dynamiclinktest.c:(.text+0x83):对dlsym'的未定义引用
dynamiclinktest.c:(.text+0x109):对
dlclose'的未定义引用
collect2:ld返回1个退出状态
在使用cc dynlinktest.c-o dynlinktest-ldl后,它将运行。
我不明白为什么必须使用-ldl
edit1:在出错之前保留空格。
-ldl
包括对具有加载动态库符号的库的引用(例如dlopen
)。请尝试“手动抄送”。它将为您提供有关编译器及其选项的一些信息;这是堆栈溢出用于标记代码和逐字输出的约定。我建议您将空格放回原处,以使错误消息更易于阅读。