未定义的符号引用 '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
)。我怀疑这已在更新过程中被删除。
首先,请记住我是 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
)。我怀疑这已在更新过程中被删除。