C++test针对QT项目arm-none-linux-gnueabi-g++编译器在Linux下调

更新时间:2024-06-28 15:54:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

C++test针对QT项目在Linux下arm-none-linux-gnueabi-g++

编译器调试总结

操作系统:Ubuntu

编译环境:QT,arm-none-linux-gnueabi-g++编译器 测试工具:C++test9.5 测试目标:单元测试

由于是项目是arm-none-linux-gnueabi-g++嵌入式平台编译器,需要使用C++test自定义编译器构建可执行文件,然后将编译好的可执行文件传到目标机运行,再将运行的结果拷贝到主机平台查看测试结果。 一、自定义编译器

在C++test中选择文件-》新建-》其他-》C++test=》自定义编译器,分别指定C编译器、C++编译器以及链接器。如C编译器指定为:/opt/freescale/usr/local/ arm-none-linux-gnueabi-gcc,C++编译器和链接器指定为/opt/freescale/usr/local/ arm-none-linux-gnueabi-g++

在自定义编译器的时候,最好能记住编译器的存储路径,因为后面可能需要再次修改编译器文件(c.psrc,cpp.psrc和gui.properties)

二、修改Build Test Executable - Generic Embedded System测试配置

打开测试配置-》Builtin-》Embeded Systems,复制“Build Test Executable – Generic embedded System”到用户自定义中,选择Execution-》General,编辑测试执行流,如下图所示:

将testLogFile和covLogFile路径设定为当前目录,即 testLogFile=”./cpptest_results.tlog” covLogFile=”./cpptest_results.clog” 如下图所示:

另外,在执行-》符号选项卡下,配置如下图所示:

注:这里不勾选“使用来自附加的项目文件的符号”,和勾选“忽略对象/库文件”,解决类似如下重复定义问题:

/home/gerrit/parasoft/workspace/.cpptest/musicplayer/file-data/AppMessage.cppca688fcf/adds/harness_AppMessage.o: In function

`AppMessage::PostToQueue(int, unsigned int, unsigned int, long)': /media/gerrit/SGME17/SGME17-Project/projects-SGME17/musicplayer/src/message/AppMessage.cpp:152: multiple definition of

`AppMessage::PostToQueue(int, unsigned int, unsigned int, long)'

三、执行遇到-m32(或-m64)问题解决

当遇到-m32(或-m64)不识别的问题,需要修改一下自定义的编译器文件(c.psrc、 cpp.psrc和gui.properties),将文件中的-m32(或-m64)选项删除即可。保存后重启c++test工具。

四、libcpptestruntime64.so文件格式不识别问题

当执行Build Test Executable - Generic Embedded System测试配置时,遇到libcpptestruntime64.so:File not recognized:File format not recognized问题,如下图所示:

解决方法:

修改自定义的编译器文件(c.psrc、 cpp.psrc和gui.properties),将-L$(CPPTEST_LIB_DIR) –lcpptestruntime64内容删除。然后保存自定义编译器文件,重启c++test工具。

五、C++test构建测试用例时,构建选项需要跟QT构建选项保持一致,不然会因为缺少库而构建失败,找不到文件定义等问题

QT构建内容可以在构建项目时控制台信息查看,如缺少链接库选项,将其添加到C++test构建设置的链接器选项中。

在惠州德赛西威中,将-Lxxxxxxxxxxxxx等选项添加到项目属性-》Parasoft-》C++test-》构建设置-》链接器选项中。

六、可执行程序在目标机上运行

选择测试用例,执行Build Test Executable - Generic Embedded System测试配置,进行编译构建测试用例,生成可执行文件,如下图所示:

构建完成后,可以看到在项目工作空间下(如:~/workspace/.cpptest/projectname/unit-data/current_tubf179707/)生成了可执行文件XXXXX.exe:

将可执行文件XXXXX.exe拷贝到目标机上运行,运行成功后,会在目标机的当前目录生成cpptest_results.clog和cpptest_results.tlog日志文件。

将cpptest_results.clog和cpptest_results.tlog日志文件回传到之前主机平台~/workspace/.cpptest/projectname/unit-data/current_tubf179707/目录下。

回到主机平台c++test,选择测试用例,执行Load Test Results(Files),如下图所示:

测试结果如下图所示:

本文来源:https://www.bwwdw.com/article/9kg3.html

Top