未定义的符号引用 'dlsym@@GLIBC_2.4'

undefined reference to symbol 'dlsym@@GLIBC_2.4'

首先,请记住我是 linux 的新手。 我在编译我的项目时遇到问题。我一直收到以下错误:

/usr/bin/ld: CMakeFiles/Robot.dir/source/ModuleHandler.cpp.o: undefined reference to symbol 'dlsym@@GLIBC_2.4' //lib/arm-linux-gnueabihf/libdl.so.2: error adding symbols: DSO missing from command line collect2: ld returned 1 exit status

首先正确的目录是:/usr/lib/arm-linux-gnueabihf/libdl.so 而不是://lib/arm-linux-gnueabihf/libdl.so

我尝试更新我的 ldconfig.conf 文件,设置 LD_LIBRARY_PATH,使用 ldd -r 无济于事。

CMAKE 用于创建 make 文件。

我以前编译没有问题。它在我进行 apt-get 升级时或在尝试从 VS 进行交叉编译后开始。

如有任何建议,我们将不胜感激!

//内森

一般来说,您找不到的符号的手册页会告诉您需要 link 哪些库。在您的情况下:

http://linux.die.net/man/3/dlsym

注意这一行:

Link with -ldl.

对我来说,重新安装 libglfw3-dev 成功了 (sudo apt install libglfw3-dev)。我怀疑这已在更新过程中被删除。