Skip to content

iOS Build Error: --symbol-prefix=BABA_ #771

@windtersharp

Description

@windtersharp
  • 版本:8.4.0

  • 现象1:不添加编译前缀,编译成功的, 库能够正常使用。

  • 现象2:加上符号前缀就报错,但是库文件也确实生成了,使用时找不到符号。

  • 编译脚本


# 配置环境变量
export CC=clang;
## 先确保机器上安装了 Xcode 开发工具
## 如下两个环境变量在参数中用到: -isysroot \$(CROSS_TOP)/SDKs/\$(CROSS_SDK)
export CROSS_TOP=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer
export CROSS_SDK=iPhoneOS.sdk
export PATH="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin:$PATH"

# 配置选项(那只是要编译32位的将 ios64 替换成 ios 即可)
./config ios64-cross no-shared no-dso no-hw no-engine enable-ntls --symbol-prefix=BABA_

# 查看 config 结果
perl configdata.pm --dump

# 编译
make -j
make -j
  • 报错信息
"_BABA_vpaes_cbc_encrypt", referenced from:
      _aes_init_key in libcrypto.a[329](libcrypto-lib-e_aes.o)
      _cipher_hw_aes_initkey in libcrypto.a[704](libdefault-lib-cipher_aes_hw.o)
  "_BABA_vpaes_decrypt", referenced from:
      _aes_init_key in libcrypto.a[329](libcrypto-lib-e_aes.o)
      _aes_xts_init_key in libcrypto.a[329](libcrypto-lib-e_aes.o)
      _aes_ocb_init_key in libcrypto.a[329](libcrypto-lib-e_aes.o)
      _cipher_hw_aes_initkey in libcrypto.a[704](libdefault-lib-cipher_aes_hw.o)
      _cipher_hw_aes_ocb_generic_initkey in libcrypto.a[706](libdefault-lib-cipher_aes_ocb_hw.o)
      _cipher_hw_aes_xts_generic_initkey in libcrypto.a[712](libdefault-lib-cipher_aes_xts_hw.o)
  "_BABA_vpaes_encrypt", referenced from:
      _aes_init_key in libcrypto.a[329](libcrypto-lib-e_aes.o)
      _aes_gcm_init_key in libcrypto.a[329](libcrypto-lib-e_aes.o)
      _aes_xts_init_key in libcrypto.a[329](libcrypto-lib-e_aes.o)
      _aes_xts_init_key in libcrypto.a[329](libcrypto-lib-e_aes.o)
      _aes_ccm_init_key in libcrypto.a[329](libcrypto-lib-e_aes.o)
      _aes_ocb_init_key in libcrypto.a[329](libcrypto-lib-e_aes.o)
      _ccm_generic_aes_initkey in libcrypto.a[701](libdefault-lib-cipher_aes_ccm_hw.o)
      ...
  "_BABA_vpaes_set_decrypt_key", referenced from:
      _aes_init_key in libcrypto.a[329](libcrypto-lib-e_aes.o)
      _aes_xts_init_key in libcrypto.a[329](libcrypto-lib-e_aes.o)
      _aes_ocb_init_key in libcrypto.a[329](libcrypto-lib-e_aes.o)
      _cipher_hw_aes_initkey in libcrypto.a[704](libdefault-lib-cipher_aes_hw.o)
      _cipher_hw_aes_ocb_generic_initkey in libcrypto.a[706](libdefault-lib-cipher_aes_ocb_hw.o)
      _cipher_hw_aes_xts_generic_initkey in libcrypto.a[712](libdefault-lib-cipher_aes_xts_hw.o)
  "_BABA_vpaes_set_encrypt_key", referenced from:
      _aes_init_key in libcrypto.a[329](libcrypto-lib-e_aes.o)
      _aes_gcm_init_key in libcrypto.a[329](libcrypto-lib-e_aes.o)
      _aes_xts_init_key in libcrypto.a[329](libcrypto-lib-e_aes.o)
      _aes_xts_init_key in libcrypto.a[329](libcrypto-lib-e_aes.o)
      _aes_ccm_init_key in libcrypto.a[329](libcrypto-lib-e_aes.o)
      _aes_ocb_init_key in libcrypto.a[329](libcrypto-lib-e_aes.o)
      _ccm_generic_aes_initkey in libcrypto.a[701](libdefault-lib-cipher_aes_ccm_hw.o)
      ...
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[1]: *** [fuzz/client-test] Error 1
make: *** [build_sw] Error 2

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions