大量链接错误“对‘libXX_YY’未定义引用”

大量链接错误“对‘libXX_YY’未定义引用”

我一直在尝试编译一个开源 C++ 项目类型感知,它具有以下依赖项列表:

  • Snappy
  • OpenSSL(>=1.0.2)
  • 卷曲
  • 重症监护室
  • brpc
  • 布拉夫特

cmake主机和目标操作系统是 Debian Linux。编译通过->命令序列进行处理make。我能够通过包管理器安装一些依赖项(我相信它们位于/usr/lib其中),最后两个我必须自己编译,我将它们放在 中/usr/local/lib

所有依赖项都已成功编译,并且目标项目也已成功编译。

当涉及到链接阶段时,我遇到了许多错误,例如

/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/libcurl.a(libcurl_la-easy.o): in function `global_init':
(.text+0x94): undefined reference to `libssh2_init'

...

/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/libcurl.a(libcurl_la-http2.o): in function `on_header':
(.text+0x6c): undefined reference to `nghttp2_session_get_stream_user_data'

...

/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/libcurl.a(libcurl_la-socks_gssapi.o): in function `check_gss_err.part.0':
(.text+0x57): undefined reference to `gss_release_buffer'
/usr/bin/ld: (.text+0x77): undefined reference to `gss_display_status'
/usr/bin/ld: (.text+0x9b): undefined reference to `gss_release_buffer'
/usr/bin/ld: (.text+0xcf): undefined reference to `gss_release_buffer'
/usr/bin/ld: (.text+0xef): undefined reference to `gss_display_status'
/usr/bin/ld: (.text+0x112): undefined reference to `gss_release_buffer'
/usr/bin/ld: (.text+0x17e): undefined reference to `gss_release_buffer'

...

/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/libcurl.a(libcurl_la-curl_rtmp.o): in function `rtmp_connect':
(.text+0xd4): undefined reference to `RTMP_Connect1'

...

/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/libcurl.a(libcurl_la-openldap.o): in function `ldap_connecting':
(.text+0x111): undefined reference to `ldap_result'

至少有上百个这样的错误。我对 Linux 和复杂的项目构建一点都不精通。我如何才能修复刚刚通过包管理器下载的库的链接错误?

相关内容