我在移植Ubuntu 18.04上的Windows项目时遇到问题。我有一个主要项目,大约有10个子项目。我正在为此项目使用CMake。由于某种原因,我的一个子项目失败,并出现以下错误:
/usr/bin/ld: CMakeFiles/unittest.dir/network/Test.cpp.o: undefined reference to symbol 'BIO_ctrl_pending@@OPENSSL_1_1_0'
//usr/lib/x86_64-linux-gnu/libcrypto.so.1.1: error adding symbols: DSO missing from command line
我的项目中有很多与CMake相关的工件,所以我不太确定什么会帮助你们诊断这一点。我注意到两个子项目使用相同的库,但是一个由于上面列出的原因而失败,而另一个则没有。我注意到在生成的build.cmake文件中,包含了这个外部目标文件:
/lib/x86_64-linux-gnu/libcrypt-2.27.so
这很奇怪,因为我从没有包括通往该库的路径。我也没有通往/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1
的道路。我不明白为什么当我在另一个文件夹中时它尝试使用该库。
对于这个子项目,我正在使用open-ssl和cryptopp。我唯一的猜测是这两个库存在某种冲突,但是只有当它们具有相同的依赖项时,在一个子项目中才是这种情况。
很抱歉,我在这里没有给您太多帮助,但是如果您告诉我与显示内容相关的内容,我将编辑我的帖子以添加您需要帮助的任何代码。我根本不知道该在哪里找东西。