如何修复架构x86_64,Boost Asio 1.58的未定义符号

用户5444681

我正在开发一个需要小型服务器来侦听HTTP请求的小型软件。不幸的是,生产服务器仅使用https,因此请求失败。我在网上搜索并找到了以下示例:http : //www.boost.org/doc/libs/1_65_0/doc/html/boost_asio/example/cpp03/ssl/server.cpp

我尽力应用所需的更改。但是我不能编译它。我在MacOS机器上,但是服务器是Ubuntu服务器。我通过brew安装了OpenSSL。

编译在链接过程中失败:

[ 98%] Linking CXX executable GpdServer
Undefined symbols for architecture x86_64:
  "_ERR_remove_thread_state", referenced from:
      boost::asio::ssl::detail::openssl_init_base::do_init::~do_init() in main.cpp.o
      boost::asio::ssl::detail::openssl_init_base::do_init::~do_init() in TcpServer.cpp.o
      boost::asio::ssl::detail::openssl_init_base::do_init::~do_init() in TcpConnection.cpp.o
  "_TLSv1_1_client_method", referenced from:
      boost::asio::ssl::context::context(boost::asio::ssl::context_base::method) in TcpServer.cpp.o
  "_TLSv1_1_method", referenced from:
      boost::asio::ssl::context::context(boost::asio::ssl::context_base::method) in TcpServer.cpp.o
  "_TLSv1_1_server_method", referenced from:
      boost::asio::ssl::context::context(boost::asio::ssl::context_base::method) in TcpServer.cpp.o
  "_TLSv1_2_client_method", referenced from:
      boost::asio::ssl::context::context(boost::asio::ssl::context_base::method) in TcpServer.cpp.o
  "_TLSv1_2_method", referenced from:
      boost::asio::ssl::context::context(boost::asio::ssl::context_base::method) in TcpServer.cpp.o
  "_TLSv1_2_server_method", referenced from:
      boost::asio::ssl::context::context(boost::asio::ssl::context_base::method) in TcpServer.cpp.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [GpdServer] Error 1
make[1]: *** [CMakeFiles/GpdServer.dir/all] Error 2
make: *** [all] Error 2

导致此问题的TcpConnection文件在此处:https : //github.com/cwansart/gpd/blob/master/src/TcpServer.h https://github.com/cwansart/gpd/blob/master/src/TcpServer .cpp

我的构建系统是CMake。包括它工作正常。

我究竟做错了什么?我该如何解决?

用户5444681

事实证明,macOS是问题所在。我通过brew安装了OpenSSL。首先,我的CLion / CMake找不到它,因此我添加了一个if,以检查它是否为Apple PC。在那种情况下,我将路径手动设置为brew给我的路径。现在,由于某种原因,链接不起作用。

在具有libssl-dev的Linux上,没有问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

架构x86_64的未定义符号:OS X,Boost Log,CMake

架构x86_64抖动的未定义符号

架构x86_64的未定义符号:“ _fcloseall”

ProgressHUD:架构 x86_64 的未定义符号:

错误架构x86_64的未定义符号:

boost :: asio :: ssl :: context :: context(boost :: asio :: ssl :: context_base :: method)未定义符号

Boost.MPI 为架构 x86_64 提供未定义符号

Boost C ++的架构x86_64的未定义符号

如何解决架构x86_64的未定义符号

架构x86_64的未定义符号->架构x86_64的未找到符号

如何在C中修复“体系结构x86_64的未定义符号”?

FBSDKLoginManager:体系结构x86_64的未定义符号+链接器命令失败,退出代码为1

体系结构x86_64的未定义符号,链接器命令失败,退出代码为1

体系结构 x86_64 和链接器命令的未定义符号失败,退出代码为 1

使用多个文件时出现“架构 x86_64 的未定义符号”错误

架构x86_64的未定义符号:带有SFML的CMMotionManager

Hello World中架构x86_64的未定义符号

架构x86_64的未定义符号是什么意思?

Xcode 6.3上架构x86_64的未定义符号

SFML 2.1架构x86_64错误的未定义符号

iOS中架构x86_64的未定义符号

Mac上的架构x86_64 C ++的未定义符号

由于架构 x86_64 的未定义符号,GLFW 的最小示例失败

架构x86_64的未定义符号:“ _ OBJC_CLASS _ $ _ HandBluetooth”,引用自:

架构x86_64的未定义符号:“ _rb_funcallv”

架构x86_64链接constexpr std :: array的未定义符号

反转字符串的代码:“架构 x86_64 的未定义符号”

找不到架构x86_64的未定义符号&& symbol(s)

iOS项目中架构x86_64的未定义符号