不学网

 找回密码
 立即注册

只需一步,快速开始

手机号码,快捷登录

查看: 62|回复: 0

[c/c++] can not be used when making a shared object; recompile with -fPIC

[复制链接]
admin 发表于 2018-4-23 17:25:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
  1. /usr/bin/ld: /usr/local/lib/libmbedtls.a(ssl_tls.c.o): relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC
  2. /usr/local/lib/libmbedtls.a: 无法添加符号: 错误的值
  3. collect2: error: ld returned 1 exit status
  4. src/CMakeFiles/bctoolbox.dir/build.make:305: recipe for target 'src/libbctoolbox.so.1' failed
复制代码
编译bctoolbox报错

修改mbedtls的CMakeFile.txt即可:
  1. cmake_minimum_required(VERSION 2.6)
  2.   2 project("mbed TLS" C)
  3.   3
  4.   4 option(USE_PKCS11_HELPER_LIBRARY "Build mbed TLS with the pkcs11-helper libr    ary." OFF)
  5.   5 option(ENABLE_ZLIB_SUPPORT "Build mbed TLS with zlib library." OFF)
  6.   6
  7.   7 option(ENABLE_PROGRAMS "Build mbed TLS programs." ON)
  8.   8
  9.   9 option(UNSAFE_BUILD "Allow unsafe builds. These builds ARE NOT SECURE." OFF)
  10. 10
  11. 11 # the test suites currently have compile errors with MSVC
  12. 12 if(MSVC)
  13. 13     option(ENABLE_TESTING "Build mbed TLS tests." OFF)
  14. 14 else()
  15. 15     option(ENABLE_TESTING "Build mbed TLS tests." ON)
  16. 16 endif()
  17. 17 add_compile_options(-fPIC)
  18. 18 # Warning string - created as a list for compatibility with CMake 2.8
  19. 19 set(WARNING_BORDER "*******************************************************\    n")
  20. 20 set(NULL_ENTROPY_WARN_L1 "****  WARNING!  MBEDTLS_TEST_NULL_ENTROPY defined!    \n")
  21. 21 set(NULL_ENTROPY_WARN_L2 "****  THIS BUILD HAS NO DEFINED ENTROPY SOURCES\n"    )
  22. 22 set(NULL_ENTROPY_WARN_L3 "****  AND IS *NOT* SUITABLE FOR PRODUCTION USE\n")
  23. 23
  24. 24 set(NULL_ENTROPY_WARNING "${WARNING_BORDER}"
  25. 25                          "${NULL_ENTROPY_WARN_L1}"
  26. 26                          "${NULL_ENTROPY_WARN_L2}"
  27. 27                          "${NULL_ENTROPY_WARN_L3}"
  28. 28                          "${WARNING_BORDER}")
复制代码
添加上面第17行重新编译即可
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|不学网

GMT+8, 2018-5-25 09:22

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表