链接器在处理.a文件的时候,会自动忽略那些没有被引用的项,以保证链接结果中没有太多无用的代码
而在处理.o文件的时候,则是你给它什么就链接什么
gtest的使用并没有使用显式的引用,因此会被链接器忽略。gtest具体是如何找到测试用例的就不清楚了,需要看源代码吧。
对这个问题的解决方案有两种:
一开始就不要生成.a
把.a解开,用一堆.o代替
在链接TEST的.a时,用这个选项-Wl,--whole-archive libtest.a,它可以强制引入libtest.a中的所有符号
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。