【发布时间】:2020-10-13 07:10:14
【问题描述】:
我有以下共享库:
libssl.so, libssl.so.1.1, libcurl.so, libcurl.so.4, libcurl.so.4.4.0, libcrypto.so, libcrypto.so.1.1.
所有库都在openssl 文件夹中。
我的问题是,如何链接 1.1 版的 libssl?它是自动完成的吗?
我尝试了以下方法:
g++ -c my_file_name.cpp -std=c++11 -w -fpermissive -lpthread --coverage $(INCLUDES) `pkg-config --cflags glib-2.0` `pkg-config --libs glib-2.0` -O0 -Lopenssl -lcrypto -lcurl -lssl
g++ my_file_name.o -o ex -std=c++11 -w -fpermissive -lpthread --coverage -lgtest -lgtest_main -lpthread `pkg-config --cflags glib-2.0` `pkg-config --libs glib-2.0` -O0 -Lopenssl -lcrypto -lcurl -lssl
但似乎链接没有发生。因为我仍然收到如下错误:
error: ‘X509_STORE_CTX_get0_chain’ was not declared in this scope
稍后编辑nm libssl.so.1.1 | grep X509_STORE_CTX_get0_chain 生成0000000000218210 T X509_STORE_CTX_get0_chain。这意味着我所做的链接不会发生。
值得一提的是,错误来自.cpp文件中包含的.c文件。
【问题讨论】:
标签: c++ c openssl shared-libraries