【问题标题】:Using dlsym and adding -ldl to flags使用 dlsym 并将 -ldl 添加到标志
【发布时间】:2010-09-21 17:46:39
【问题描述】:

我正在尝试编写一个使用 dlysm 的 C 程序,但我不断收到对 dlysm 的未定义引用。我想我需要设置我的-ldl 标志,但我不知道该怎么做。

我对 linux 和设置变量非常陌生。如果这是我需要做的,有人可以帮我完成命令吗?

【问题讨论】:

    标签: c unix dynamic-linking


    【解决方案1】:

    -ldl 作为参数传递给编译器。

    例子:

    gcc myprog.c -o app -ldl
    

    【讨论】:

      【解决方案2】:

      -l 库选项在链接时使用。

      如果您只编译一个源文件 (gcc -o program program.c),那么您可以同时编译和链接。只需添加-ldl

      如果您编译多个对象 (*.o) 文件,然后将它们链接在一起,请为链接器 (ld) 指定 -ldl 选项。

      另请参阅man ldman cc

      【讨论】:

      • 我收到这个错误 user@ubuntu8041:~$ gcc -Wall -g -o mymalloc mymalloc.c -ldl /usr/lib/gcc/i486-linux-gnu/4.2.4/.. /../../../lib/crt1.o:在函数_start': (.text+0x18): undefined reference to main'collect2:ld返回1个退出状态
      • 这表示您没有定义 main() 函数;运行时库需要一个 main 来运行您的程序。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-18
      • 2020-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多