支持通用IDE

Qt Creator

注意:本部分是关于使用CMake进行仪器化。对于QMakeQBS构建系统,请参阅链接。

在源代码根目录下创建一个名为squishcoco.cmake的文件,如前所述。

要将它包含到项目中,在项目视图中选择CMake部分和初始配置选项卡。在附加CMake选项字段中,添加命令行选项"-C<path>/squishcoco.cmake"来读取文件squishcoco.cmake。到squishcoco.cmake的路径必须是绝对路径。

Microsoft Visual Studio

Coco为位于%SQUISHCOCO%\visualstudio目录上的link.execl.exe提供了封装器。它们的行为与对应的Microsoft®编译器和链接器完全相同,只是在命令参数中包含--cs-on选项时,代码覆盖率分析将被激活。封装器会调用Microsoft工具进行编译和链接。

注意:有关C#仪器化的信息,请参阅此处

Microsoft Visual Studio .NET C和C++编译器

有两个方法可以激活Visual Studio C/C++项目的仪器化。它可以自动执行,使用Visual Studio Coco向导。或者可以手动执行,如本节其余部分所述。

要使用Coco与Visual Studio .NET一起使用

  1. CoverageScanner封装器的位置添加到VC++ Directories的第一个位置。
    • 对于Visual Studio 2005或2008
      1. 启动Visual Studio 2005或2008。
      2. 选择工具 > 首选项
      3. 选择项目 > VC++ Directories
      4. 将条目$(SQUISHCOCO)\visualstudio添加到目录列表的第一个位置。

        "Setting the path on Visual Studio 2005 and 2008"

    • 对于Visual Studio 2010
      1. 启动Visual Studio 2010。
      2. 打开一个C++项目。
      3. 使用加载项目的上下文菜单打开项目属性。
      4. 选择配置属性 > VC++ 目录
      5. 将条目$(SQUISHCOCO)\visualstudio添加到可执行目录列表中的第一项

        "Setting the path on Visual Studio 2005 and 2008"

  2. 要激活代码覆盖率分析
    1. 打开一个 Visual C 或 C++ 项目。
    2. 单击项目 > 属性来编辑项目设置。
    3. 配置属性 > C/C++ > 命令行 > 附加选项中,输入--cs-on

      "C++ properties"

    4. 配置属性 > 连接器 > 命令行 > 附加选项中,输入--cs-libgen以指定用于生成 CoverageScanner 库的库。

      "Linker properties"

      有关推荐设置的列表,请参阅 库设置

    5. 对于 Microsoft Windows CE 应用程序,将命令行选项 --cs-architecture 添加到连接器参数,该选项允许您指定目标平台。有关可用架构的摘要,请参阅 架构

库设置

库文件命令行选项
单线程LIBC.LIB--cs-libgen=/ML
静态多线程LIBCMT.LIB--cs-libgen=/MT
动态链接(DLL)LIBCRT.LIB--cs-libgen=/MD
调试单线程LIBCD.LIB--cs-libgen=/MLd
调试静态多线程LIBCMTD.LIB--cs-libgen=/MTd
调试动态链接(DLL)LIBCRTD.LIB--cs-libgen=/MDd

架构

目标架构命令行选项
ARM 微处理器--cs-architecture=ARM
ARM 微处理器(Thumb 代码)--cs-architecture=THUMB
x86 微处理器--cs-architecture=IX86
MIPS16 微处理器--cs-architecture=MIPS16
MIPS 微处理器--cs-architecture=MIPS
MIPS 微处理器带 FPU--cs-architecture=MIPSFPU
SH3 微处理器带 FPU--cs-architecture=SH3
SH4 微处理器带 FPU--cs-architecture=SH4

Microsoft Visual C++ Express

要使用 Coco 与 Microsoft Visual C++ Express 一起使用

  1. CoverageScanner 包装器的位置添加到VC++ 目录的第一位置
    1. 启动 Microsoft Visual C++ Express。
    2. 选择工具 > 首选项
    3. 选择项目 > VC++ Directories
    4. 将条目$(SQUISHCOCO)\visualstudio添加到目录列表的第一项。

      "Setting the path on Visual C++ Express"

  2. 代码覆盖率分析激活与 Visual Studio .NET 相似(请参阅 Visual Studio .NET C 和 C++ 编译器)。

Microsoft Visual Studio 6.0

要使用 Coco 与 Visual Studio 6.0 一起使用

  1. CoverageScanner 包装器的位置添加到可执行目录的第一位置
    1. 启动 Visual Studio 6.0。
    2. 选择工具 > 首选项 > 目录
    3. 显示目录的类别中,选择可执行文件
    4. 将 Coco 安装目录的visualstudio路径作为目录列表中的第一项添加。例如,如果 Coco 安装在c:\programme\SquishCoco上,请添加路径c:\programme\SquishCoco\visualstudio

      注意:Microsoft Visual Studio 6.0 不能处理路径列表中的系统变量。因此,需要扩展%SQUISHCOCO%变量。

      "Setting the path on Visual Studio 6.0"

  2. 要激活代码覆盖率分析
    1. 打开一个 Visual C 或 C++ 项目。
    2. 单击项目 > 属性来编辑项目设置。
    3. 将选项--cs-on添加到 C 或 C++ 编译器和链接器的附加命令行参数。

      "Compiler properties"

    4. 在连接器的附加参数中添加--cs-libgen,以指定生成的 CoverageScanner 库的名称。

      "Linker properties"

      有关推荐设置的列表,请参阅 库设置

Microsoft嵌入式Visual C++

要使用Coco与Microsoft嵌入式Visual C++

  1. CoverageScanner包装器的位置添加到可执行目录的第一个位置。
    1. 启动嵌入式Visual C++。
    2. 选择工具 > 首选项 > 目录
    3. 显示目录的类别中,选择可执行文件
    4. 选择平台和目标CPU
    5. 将Coco安装中WinCE目录的路径添加到目录列表的第一个位置。例如:如果Coco安装在c:\programme\SquishCoco,则添加路径c:\programme\SquishCoco\WinCE

      注意:Microsoft嵌入式Visual C++不支持路径列表中的系统变量,因此需要展开%SQUISHCOCO%变量。

      "Setting the path on eMbedded Visual C++"

  2. 要激活代码覆盖率分析
    1. 打开一个 Visual C 或 C++ 项目。
    2. 单击项目 > 属性来编辑项目设置。
    3. 将选项--cs-on添加到C和C++编译器及链接器的附加命令行参数中。

      "Compiler properties"

      "Linker properties"

Eclipse C/C++ IDE

在Eclipse™ C/C++ IDE中,可以通过将使用的编译器名称替换为Coco编译器包装器的名称来启用配置的代码覆盖率。

  1. 启动Eclipse。
  2. 加载应进行代码插装的C或C++项目。
  3. 打开项目属性窗口。
  4. 点击C/C++构建 > 设置
  5. 点击管理配置创建新的配置,并选择它。
  6. 点击工具设置标签页。
  7. 点击GCC C++编译器,将cs添加到编译器的名称前。

    "Eclipse settings"

  8. 点击GCC C编译器,将cs添加到编译器的名称前。
  9. 点击C++链接器,将cs添加到链接器的名称前。
  10. 如果是库项目,也点击GCC归档器,并将归档器命令的名称ar替换为csar

现在Eclipse将使用Coco包装器而不是编译器进行编译。

但是,Coco包装器默认不在搜索PATH中,因此在编译时无法找到。

要更改此设置,需要在属性窗口的C/C++构建 > 环境部分添加PATH变量的副本,并添加Coco二进制的路径。在UNIX®下,如果Coco安装在默认位置,则PATH的值将类似/opt/SquishCoco/bin:/usr/local/bin:/usr/bin:/bin

通常需要通过设置命令行选项来修改Coco的行为。最简单的方法是将变量COVERAGESCANNER_ARGS添加到C/C++构建 > 环境中。它的值由命令行选项组成(见选项列表)。然而,如果没有设置或为空,则已激活代码插装。

注意:如果COVERAGESCANNER_ARGS的值已更改,则需要重新编译整个项目。否则,新的选项将没有效果。

如果一切完成正确并且项目已编译,您将在控制台窗口中看到使用csg++而不是g++,并且在新构建的二进制文件旁边创建一个.csmes文件。当运行二进制文件时,在工作目录中创建一个.csexe文件,通常与.csmes文件所在的目录不同。

Apple Xcode

对于Apple Xcode 12之前的版本

要使用Coco与Apple® Xcode,激活代码覆盖率分析

  1. 打开一个终端窗口,并将 CPLUSPLUSLDPLUSPLUSLDCC 设置为 CoverageScanner 编译器包装器。本地编译器的路径(clangclang++gccg++)需要在 PATH 环境变量中设置。
  2. 使用 open 命令启动 Xcode。

    如果使用 GCC 作为编译器

    SQUISHCOCO=/Applications/SquishCoco/wrapper
    export CC=$SQUISHCOCO/gcc
    export LD=$SQUISHCOCO/gcc
    export CPLUSPLUS=$SQUISHCOCO/g++
    export LDPLUSPLUS=$SQUISHCOCO/g++
    
    open /Developer/Applications/Xcode.app

    如果使用 clang 作为编译器

    SQUISHCOCO=/Applications/SquishCoco/wrapper
    export CC=$SQUISHCOCO/clang
    export LD=$SQUISHCOCO/clang
    export CPLUSPLUS=$SQUISHCOCO/clang++
    export LDPLUSPLUS=$SQUISHCOCO/clang++
    export XCODE_TOOLCHAIN_DIR=/Applications/Xcode.app/Contents/Developer/Toolchains
    export XCODE_TOOLCHAIN=$XCODE_TOOLCHAIN_DIR/XcodeDefault.xctoolchain/usr/bin/
    
    export PATH=$XCODE_TOOLCHAIN:$PATH
    
    open /Applications/Xcode.app
  3. 打开一个 Xcode C 或 C++ 项目。
  4. 通过单击 Project > Edit Project Settings 来编辑项目设置。
  5. 将选项 --cs-on 添加到 C 和 C++ 编译器的其他命令行参数中(在 Other C FlagsOther C++ Flags 中)以及链接器在 Other Linker Flags 中的其他命令行参数。

    "Compiler and Linker flags"

  6. 禁用预编译头文件的使用。打开活动目标的设置(Project > Edit Active Target)并移除 Prefix Header 中的内容。

    "Disabling precompiled header"

对于 Apple Xcode 12 及更高版本

为了使用 Coco 和 Apple Xcode,激活代码覆盖率分析

  1. 打开一个 Xcode C 或 C++ 项目。
  2. 通过单击顶级项目来编辑项目设置。
  3. 单击 + 按钮,并插入以下 User Defined Settings
    • CC: /Applications/SquishCoco/wrapper/clang
    • CPLUSPLUS: /Applications/SquishCoco/wrapper/clang
    • LD: /Applications/SquishCoco/wrapper/clang
    • LDPLUSPLUS: /Applications/SquishCoco/wrapper/clang++
  4. 将选项 --cs-on 添加到 C 和 C++ 编译器的其他命令行参数中(在 Other C FlagsOther C++ Flags 中)以及链接器的其他命令行参数中(在 Other Linker Flags 中)。还建议通过添加开关 --cs-native-toolchain 来设置 clang 工具链的路径。以下是一个完整示例
    --cs-on
    --cs-native-toolchain=/Applications/Xcode.app/Contents/Developer/Toolchains
                          /XcodeDefault.xctoolchain/usr/bin/
  5. 禁用预编译头文件的使用。打开活动目标的设置(Project > Edit Active Target)并移除 Prefix Header 中的内容。

Coco v7.2.0©2024 The Qt Company Ltd.
Qt 及相关标志是芬兰及/或其他国家的 The Qt Company Ltd. 的商标。所有其他商标均为各自所有者的财产。