undefined reference to `dlsym'
时间: 2023-06-29 11:15:54 浏览: 233
采用dlopen、dlsym、dlclose加载动态链接库
这个错误通常是由于编译器无法找到 `dlsym` 函数所在的库文件 `libdl`,或者在链接时没有正确地指定 `libdl` 库导致的。
解决这个问题的方法是在链接时显式地将 `libdl` 库链接进去。具体来说,你需要在编译命令中添加 `-ldl` 选项,例如:
```
gcc your_program.c -o your_program -ldl
```
这将会链接 `libdl` 库,使得编译器能够找到 `dlsym` 函数并成功完成链接。
另外,如果你的程序使用了其他的库,也需要确保这些库在链接时都被正确地指定了。如果你使用的是 CMake,可以将需要链接的库添加到 `target_link_libraries` 命令中。例如:
```
target_link_libraries(your_target_name dl)
```
这将会在链接时将 `libdl` 库链接进你的目标文件中。
阅读全文