openssl-1.1.1移植./libcrypto.so: undefined reference to `getcontext'錯誤及解決

https://www.openssl.org/source/下載openssl-1.1.1源代碼

# tar zxvf openssl-1.1.1.tar.gz  
# cd openssl-1.1.1
# mkdir build_arm
# ./config no-asm shared no-async --prefix=/home/wenyi/development/soft_arm/openssl-1.1.1/build_arm --cross-compile-prefix=arm-hisiv500-linux-   生成makefile文件
修改makefile,去除掉 -m64和-m32選項
# make && make install

【錯誤描述】:

./libcrypto.so: warning: gethostbyname is obsolescent, use getnameinfo() instead.
./libcrypto.so: undefined reference to `getcontext'
./libcrypto.so: undefined reference to `setcontext'
./libcrypto.so: undefined reference to `makecontext'

【錯誤原因】:
之前config使用:
./config no-asm shared --prefix=/home/wenyi/development/soft_arm/openssl-1.1.1/build_arm --cross-compile-prefix=arm-hisiv500-linux-
沒有使用 no-async 參數,加上之後就可以了。
【參數說明】

  1. no-asm: 在交叉編譯過程中不使用匯編代碼代碼加速編譯過程.原因是它的彙編代碼是對arm格式不支持的。
  2. shared: 生成動態連接庫。
  3. no-async: 交叉編譯工具鏈沒有提供GNU C的ucontext庫
  4. –prefix=: 安裝路徑,編譯完成install後將有bin,lib,include等文件夾
  5. –cross-compile-prefix=: 交叉編譯工具
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章