我们面临着一个缓慢的应用启动,其原因是我们有很多动态框架。
在阅读了互联网上的一些文章之后,解决方案现在应该是将所有内容移动到1个动态库中,并使所有其他库保持静态。
现在我们有一个内部动态框架,其中包含来自第三方供应商的静态库。当我使这个框架静态时,框架构建静态框架但是当我在项目中使用框架时,似乎静态第3方供应商不在框架内。该框架具有以下依赖关系:
我还将-ObjC和-all_load标志添加到其他链接器标志。
现在,当我运行项目时出现以下错误:
Undefined symbols for architecture x86_64:
"RunTestDataFile(char const*, InCryptoPP::NameValuePairs const&, bool)", referenced from:
ValidateAll(bool) in Juno(validat1.o)
ValidateRijndael() in Juno(validat1.o)
ValidateSalsa() in Juno(validat1.o)
ValidateSosemanuk() in Juno(validat1.o)
ValidateVMAC() in Juno(validat1.o)
ValidateCCM() in Juno(validat1.o)
ValidateGCM() in Juno(validat1.o)
...
"GlobalRNG()", referenced from:
BenchMark(char const*, InCryptoPP::StreamTransformation&, double) in Juno(bench1.o)
BenchMark(char const*, InCryptoPP::HashTransformation&, double) in Juno(bench1.o)
BenchMark(char const*, InCryptoPP::BufferedTransformation&, double) in Juno(bench1.o)
BenchMarkEncryption(char const*, InCryptoPP::PK_Encryptor&, double, bool) in Juno(bench2.o)
BenchMarkDecryption(char const*, InCryptoPP::PK_Decryptor&, InCryptoPP::PK_Encryptor&, double) in Juno(bench2.o)
BenchMarkSigning(char const*, InCryptoPP::PK_Signer&, double, bool) in Juno(bench2.o)
BenchMarkVerification(char const*, InCryptoPP::PK_Signer const&, InCryptoPP::PK_Verifier&, double, bool) in Juno(bench2.o)
...
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我失踪了什么?