在macos上编译代码的未解析符号

unresolved symbols compiling code on mac os

本文关键字:符号 代码 macos 编译      更新时间:2023-10-16

Mac OS SierraApple LLVM版本8.0.0(clang-800.0.42.1)gcc版本c++-9(Homebrew gcc 9.2.0_2)9.2.0

我正在尝试编译一个测试程序,该程序使用https://github.com/binance-exchange/binacpp它使用微软的jsoncpphttps://github.com/open-source-parsers/jsoncpp以及openssl、curl、websockets、json库我遇到了一个链接问题,似乎我认为没有一个符号得到解决。无法计算为什么?可能是由于丑陋的设置。。。

丑陋的设置:-微软(jsoncpp)使用了llvm/clang不支持的一些技术因此,它建议使用gcc和微软的packetmanager vcpkg。使用gcc将源代码编译成一个静态库libjsoncpp.a,我复制到我的测试程序目录中。-使用gcc-c将binacpp源代码编译到对象文件中,并使用arrcs-libbinacpp*.o创建另一个静态库-包括openssl的include和lib目录,由于某些原因,在通常的目录中找不到,als以及libjsoncpp的头文件直接

整个命令:

/usr/local/opt/gcc/bin/c++-9 test.cpp libbinacpp.a libjsoncpp.a  
-I/Users/N/Downloads/vcpkg/packages/jsoncpp_x64-osx/include
-I/usr/local/Cellar/openssl@1.1/1.1.1d/include 
-L/usr/local/Cellar  /openssl@1.1/1.1.1d/lib -lwebsockets -ljson -lcurl -lssl 

整件事让我犯了很多错误。不知道出了什么问题。。。感谢您的帮助。

谨致问候。

错误(小部分):

体系结构x86_64的未定义符号:-"_EVP_sha256",引用自:-libbinacpp.a(binacpp_utils.o)中的hmac_sha256[abi:cx11](char const*,char const*)-"_HMAC",引用自:-libbinacpp.a(binacpp_utils.o)中的hmac_sha256[abi:cx11](char const*,char const*)-"_SHA256_Final",引用自:-libbinacpp.a(binacpp_utils.o)中的sha256[abi:cx11](char const*)-"_SHA256_Init",引用自:-libbinacpp.a(binacpp_utils.o)中的sha256[abi:cx11](char const*)-"_SHA256_更新",引用自:-libbinacpp.a(binacpp_utils.o)中的sha256[abi:cx11](char const*)-"Json::Reader::parse(std::__cxx11::basic_string,-std::allocater>const&,Json:;Value&,bool)",引用自:-libbinacpp.a(BinaCPP.o)中的BinaCPP::get_exchangeInfo(Json::Value&)-libbinacpp.a(BinaCPP.o)中的BinaCPP::get_serverTime(Json::Value&)-libbinacpp.a(BinaCPP.o)中的BinaCPP::get_allPrices(Json::Value&)-libbinacpp.a(BinaCPP.o)中的BinaCPP::get_allBookTickers(Json::Value&)-libbinacpp.a(BinaCPP.o)中的BinaCPP::get_depth(char const*,int,Json::Value&)-libbinacpp.a(BinaCPP.o)中的BinaCPP::get_aggTrades(char const*,int,long,long、int,Json::Value&)-libbinacpp.a(BinaCPP.o)中的BinaCPP::get_24hr(char const*,Json::Value&)-。。。-"Json::运算符<<(std::basic_stream>&,Json:;Value const&)",-引用自:-_以ccsPSRMm.o表示-"Json::Value::asStringabi:cx11 const",引用自:-libbinacpp.a(BinaCPP.o)中的BinaCPP::get_price(char const*)-libbinacpp.a(BinaCPP.o)中的BinaCPP::get_bookTicker(char const*,Json::Value&)-"std::__1::basic_string,std::___1::分配器

更多的错误。。。。

ld:找不到体系结构x86_64集合的符号2:错误:ld返回1退出状态

你似乎只是忘记了在项目中包括你的库,请参考这个问题,如果你使用的是Xcode,图片中提到了如何做到这一点。

相关文章: