gpt4 book ai didi

c++ - 帮助构建 boost asio ssl 示例

转载 作者:太空狗 更新时间:2023-10-29 21:08:56 25 4
gpt4 key购买 nike

我一直在研究 asio ssl 示例(链接如下)。尽管尽了最大努力,我还是无法将 openssl 链接到 boost 示例中。 ld 的输出是 ld 缺少 libssl.a 中的符号。我无法弄清楚的是,我发现 libssl.a 中所有带有 ld 的 nm 的符号都丢失了。我怀疑我在做一些愚蠢的事情,但我对 C++ 不够熟悉,无法修复它。我还包含了我的 makefile。 ssl-client.cpp 的来源是从链接中逐字记录的。

http://www.boost.org/doc/libs/1_41_0/doc/html/boost_asio/example/ssl/client.cpp

INCLUDES = -I /usr/local/boost_1_41_0/ -I /opt/local/include/
LIBS = -L/usr/local/boost_1_41_0/lib/libboost_system.a \
-L/opt/local/lib/libcrypto.a \
-L/opt/local/lib/libssl.a

CPP = g++

build: ssl-client

ssl-client: ssl-client.cpp
$(CPP) $(LIBS) $(INCLUDES) ssl-client.cpp

最佳答案

我认为您误解了 -L 选项的工作原理。 -L 指定搜索库的路径。要指定要链接到的单个库,请使用 -l 选项并省略“lib”前缀,如下所示:

LIBS = -L/usr/local/boost_1_41_0/lib -L/opt/local/lib \
-lboost_system -lcrypto -lssl

此外,-I include 路径选项和实际路径之间通常没有空格。我不确定那里的空间是否会导致问题,但为了安全起见,您可以尝试这样做:

INCLUDES = -I/usr/local/boost_1_41_0/ -I/opt/local/include/

此外,正如我在评论中指出的那样,您定义了 LIBS 变量,但随后使用了 LIB 变量。对 g++ 的调用应该如下所示:

$(CPP) $(LIBS) $(INCLUDES) ssl-client.cpp

关于c++ - 帮助构建 boost asio ssl 示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2153318/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com