cmake-ibmtpm1682编译

1、error Ossl library is using different radix 异常解决

RADIX_BITS由 64改成32

--whole-archive CMakeFiles\ibm-tpm-my.dir/objects.a -Wl,

--no-whole-archive @CMakeFiles\ibm-tpm-my.dir\linklibs.rsp

CMake中的 --whole-archive以及--no-whole-archive两者都是编译器选项,需要配合使用-Wl传递给编译器。 --whole-archive选项作用是设置连接器将库中的符号全部加载到链接的库中,--no-whole-archive表示关闭编译器。

cmake&gcc笔记 | Avvount's Blog

  1. 链接库

    link_libraries(pthread xxx.a)
    link_libraries(pthread "-Wl,--whole-archive" xxx.a "-Wl,--no-whole-archive")

    "-Wl,--whole-archive""-Wl,--no-whole-archive"用于生成动态库(yyy.so),是ld使用的命令行参数
    "-Wl,--whole-archive" 告诉编译器,从这里开始,所有的库的内容都包含到yyy.so中,这种方式生成的so较大,之后依赖该yyy.so的程序可以直接使用yyy.so所依赖的静态库xxx中的函数而不需要再次静态链接xxx
    "-Wl,--no-whole-archive" 告诉编译器,从这里开始,以后的库的内容不用都包含到so中,so体积较小,依赖该so的程序需要使用静态库xxx中未被yyy.so使用的函数时需要再次链接xxx

    也可以使用 target_link_libraries(target_name "-Wl,--whole-archive" xxx.a "-Wl,--no-whole-archive" pthread) 进行链接,target_link_libraries用在第7条之后,只对指定生成目标生效,link_libraries用在第7条之前,对之后所有生成目标均生效

2、linker input file unused because linking not done

解决方法,去掉 -c

相关推荐
谢泽豪几秒前
解决 uniapp 修改index.html文件不生效的问题
前端·uni-app
袁煦丞几秒前
【黑科技指南】自托管私人导航站Dashy:cpolar内网穿透实验室第476个成功挑战
前端·程序员·远程工作
Nayana1 分钟前
Clean Code JavaScript小记(一)
javascript
heartmoonq4 分钟前
关于前端监控用户行为导致的报错
前端
已读不回1434 分钟前
告别痛苦的主题切换!用一个插件解决 Tailwind CSS 多主题开发的所有烦恼
前端·架构
pepedd8645 分钟前
🚀Webpack 从入门到优化,一文全掌握!
前端·webpack·trae
TimelessHaze6 分钟前
【面试考点】从URL输入到页面展示
前端·trae
玲小珑7 分钟前
LangChain.js 完全开发手册(一)AI 应用开发入门
前端·langchain·ai编程
excel8 分钟前
前端必修:从表单基础到富文本编辑,一文吃透 HTML 表单编程与交互
前端
袁煦丞10 分钟前
JuiceSSH你的口袋里的Linux操控台:cpolar内网穿透实验室第530个成功挑战
前端·程序员·远程工作