使用嵌入式开发,我们解决问题的时候,常常需要只把源码进行预处理,或者让它生成汇编文件,而不是生成目标文件。可是当我们使用cmake的时候,cmake在编译之前会进行test,test的目的是看能否生成目标文件,以确保编译参数等正确。
这就很烦了,如果我们加了-E,或者-S参数,很显然生成的是中间文件,而不是目标文件了。因此,cmake会直接终止编译,并报错!
更多信息请参看:cmake官网
报错信息,如图所示:
[图片上传失败...(image-e1aeb2-1588308531633)]
因此,需要跳过这个test步骤。通过报错信息看到,问题就出在:CMakeTestCCompiler.cmake:60
,因此,找到该文件:先做好备份,然后直接把里面的内容清空。执行cmake,发现报了新的错误:
[图片上传失败...(image-c62bfd-1588308531634)]
通过报错信息看到,CMakeTestCXXCompiler.cmake:53
,这个文件又报错了,但之前的CMakeTestCCompiler
正确了。即CCompiler测试通过,但CXXCompiler还没有过!因此,同样找到该文件:先做好备份,然后直接把里面的内容清空。执行cmake,成功编译!
[图片上传失败...(image-dd0437-1588308531634)]
当然,别看后缀是.o,其实里面放的都是预处理文件呢~
出差必备
买火车票、高铁票、机票,订酒店都打9折的出行工具TRIP,点击注册