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

相关推荐
M-Robots echo2 小时前
轻量化裁剪方案解析:M-Robots 模块化构建,适配高低端各类机器人硬件平台
java·机器人·ros·开源社区·atomgit·m-robots
不可求~2 小时前
多模型路由怎么落地:把任务分流写进项目的最小实现
java·前端·数据库
mldong3 小时前
用 DDD 设计工作流引擎:聚合根与充血模型
java·架构
mqiqe4 小时前
AgentScope Java Harness:4. 双层记忆系统 让 Agent 拥有真正的“长期大脑“
java·开发语言
伍一514 小时前
03-文件管理模块-一个看似简单的模块藏着多少细节
java·ruoyi·若依
gugucoding4 小时前
46. 【Java】JUC并发工具:让并发更简单
java·开发语言
Nebula_g5 小时前
JavaSE基础语法:面向对象高级(代码中的成分)
java·开发语言·编程·javase·技术栈·高级语法
AC赳赳老秦5 小时前
公开图片 OCR 数据提取:OpenClaw 合规采集公开信息图,识别文字与表格并转化为结构化数据
java·大数据·前端·数据库·python·php·openclaw
谢慧琼6 小时前
2026零基础做企业网站,低成本搭建官方网站
服务器·前端·javascript
weixin_431600447 小时前
前端数据埋点(1):一次点击如何变成一条埋点
前端·js·数据埋点