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
-
链接库
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