我一直在研究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
1 回答
我认为你误解了
-L
选项是如何工作的 .-L
指定搜索库的路径 . 要指定要链接到的单个库,请使用-l
选项并省略"lib"前缀,如下所示:此外,
-I
include路径选项与实际路径之间通常没有空格 . 我不确定那里的空间是否会导致问题,但您可能会尝试这样做是为了安全起见:此外,如我的评论中所述,您定义了
LIBS
变量,但随后使用了LIB
变量 . 对g的调用应如下: