提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
原创|使用教程|编辑:张莉|2025-11-05 13:29:53.637|阅读 56 次
概述:Parasoft C/C++test是一款专为C/C++代码设计的自动化测试工具,通过静态代码分析、单元测试和运行时错误检测等功能,帮助开发团队在早期发现并修复缺陷,提升代码质量和开发效率 。在实际使用中,尤其是在VC6此类旧版开发环境中执行单元测试时,可能会因环境兼容性问题触发链接错误。
#慧都年终盛惠·界面/图表报表/文档/IDE/IOT/测试等千款热门软控件火热促销中>>
Parasoft C/C++test是一款专为C/C++代码设计的自动化测试工具,通过静态代码分析、单元测试和运行时错误检测等功能,帮助开发团队在早期发现并修复缺陷,提升代码质量和开发效率 。在实际使用中,尤其是在VC6此类旧版开发环境中执行单元测试时,可能会因环境兼容性问题触发链接错误。
例如LNK2005错误,正是由于C++test生成的测试框架与VC6的库链接顺序冲突所致,具体表现为MFC库与C运行时库对operator delete等符号的重复定义。这一问题的解决需要深入理解工具链的交互机制,并针对性调整构建设置。
问题说明
产品:C++test v9.5.x
开发环境: VC6
在执行单元测试时,链接出错,报告重复定义错误。
错误提示如下:
测试项目链接中... link.exe /DEBUG "C:\Documents and Settings\Administrator\parasoft\workspaceVC6\.cpptest\MyTcp\file-data\MyTcp.cpp69e3cf3d\tested\harness_MyTcp.obj" "C:\Documents and Settings\Administrator\parasoft\workspaceVC6\.cpptest\MyTcp\file-data\MyTcpDlg.cpp1ffaee6c\tested\harness_MyTcpDlg.obj" "C:\Documents and Settings\Administrator\parasoft\workspaceVC6\.cpptest\MyTcp\file-data\sockNet.cpp56651141\tested\harness_sockNet.obj" "C:\Documents and Settings\Administrator\parasoft\workspaceVC6\.cpptest\MyTcp\file-data\StdAfx.cpp11619072\tested\harness_StdAfx.obj" "C:\Documents and Settings\Administrator\parasoft\workspaceVC6\.cpptest\MyTcp\file-data\UDPGroup.cpp43d5eda0\tested\harness_UDPGroup.obj" "C:\Documents and Settings\Administrator\parasoft\workspaceVC6\.cpptest\MyTcp\file-data\cpptest_testrunner.cppa78b284a\cpptest_testrunner.obj" "C:\Documents and Settings\Administrator\parasoft\workspaceVC6\.cpptest\MyTcp\file-data\safe_stubs_win32.cee1d0f7b\harness_safe_stubs_win32.obj" /subsystem:windows /machine:I386 "C:\Program Files\Parasoft\C++test\9.5\engine\lib"/cpptestruntime.lib /LIBPATH:"C:\Program Files\Parasoft\C++test\9.5\engine\lib" "C:\Program Files\Parasoft\C++test\9.5\engine\lib"/cpptestsupplement.obj /OUT:"C:\Documents and Settings\Administrator\parasoft\workspaceVC6\.cpptest\MyTcp\unit-data\current_tubf179707\MyTcpTest.exe" -nologo nafxcwd.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) already defined in libcpmtd.lib(delop.obj) nafxcwd.lib(afxmem.obj) : warning LNK4006: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) already defined in libcpmtd.lib(delop.obj); second definition ignored Creating library C:\Documents and Settings\Administrator\parasoft\workspaceVC6\.cpptest\MyTcp\unit-data\current_tubf179707\MyTcpTest.lib and object C:\Documents and Settings\Administrator\parasoft\workspaceVC6\.cpptest\MyTcp\unit-data\current_tubf179707\MyTcpTest.exp C:\Documents and Settings\Administrator\parasoft\workspaceVC6\.cpptest\MyTcp\unit-data\current_tubf179707\MyTcpTest.exe : fatal error LNK1169: one or more multiply defined symbols found 进程由于代码: 1169 (错误)退出。
该LNK2005错误本质上是Microsoft Foundation Classes (MFC)库与C/C++运行时库(CRT)在链接时发生的符号定义冲突。在VC6环境中,MFC的调试版库nafxcwd.lib和C++标准库的调试多线程静态版libcpmtd.lib都包含了如operator delete、operator new以及DllMain等核心例程的强符号定义。
这一冲突的直接原因是库的链接顺序不当。VC6的链接器按命令行中指定的顺序处理输入库。正确的顺序要求MFC库必须先于C运行时库被处理,因为CRT库有意将这些符号设置为弱外部链接,期望在后续链接MFC库时能被覆盖。当链接顺序颠倒或构建环境(如Parasoft C++test生成的测试框架)错误地同时引入两者时,链接器便会发现同一个函数存在多个强定义,从而触发LNK2005重复定义错误。
解决方法
该错误主要来自于微软的库设置冲突。修改构建设置即可:
打开项目属性,找到构建设置的链接器选项,在其中添加如下选项强制库的链接顺序:
${cpptest:original_options} nafxcwd.lib libcmtd.lib /nodefaultlib:"nafxcwd.lib" /nodefaultlib:"libcmtd.lib"
通过调整链接顺序强制 MFC 库优先于 CRT 库加载,可有效解决 LNK2005 错误,确保 C++test 在 VC6 环境中的单元测试顺利执行。作为一款支持编码规范验证、静态分析、单元测试及覆盖率分析的集成解决方案,Parasoft C/C++test不仅能够自动化执行此类复杂场景的测试任务,还通过早期缺陷检测和持续质量监控,帮助团队降低返工成本,提升代码可靠性 。正确配置并利用其能力,可显著优化嵌入式、跨平台等关键领域开发的测试流程,最终实现高质量代码的持续交付。
关于慧都
慧都科技(EVGET)成⽴于2003年,是⼀家⾏业数字化解决⽅案公司,⻓期专注于软件、油⽓与制造⾏业。公司基于深⼊的业务理解与管理洞察,以系统化的业务建模驱动技术落地,帮助企业实现智能化运营与⻓期竞争优势。
慧都科技作为Parasoft公司在中国区的官方授权合作伙伴,为国内企业提供Parasoft C/C++test产品的正版授权、定制化部署与全生命周期技术支持与服务。我们致力于助力客户精准贯彻功能安全标准、全面提升软件开发效率、有效管控项目风险,最终构建符合国际标准的高质量软件体系。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com




在软件研发质量管控领域,Parasoft 是深耕多年的专业解决方案提供商,旗下拥有覆盖代码静态分析、单元测试、API 测试、质量数据管理等全流程的工具矩阵,能够为航空航天、汽车电子、医疗设备等多行业提供端到端的软件测试解决方案,帮助企业在加速研发迭代的同时,守住产品质量与合规底线。
C++广泛应用于汽车电子、工业控制等高要求领域,代码迭代频繁,测试保障至关重要。然而传统全量扫描效率低下,耗时久、资源消耗大,成为研发流程瓶颈。如何实现高效精准测试?自动化测试平台Parasoft C/C++ Test 提供增量扫描解决方案,仅针对代码变更部分进行检测,显著提升测试效率,兼顾准确性与轻量化。
在本指南中,您将学习如何使用 Vaadin Copilot 的 Figma Importer API 将 Figma 中的组件复制并粘贴到 Vaadin 中作为 Java 或 React 代码。
可视化比例数据(例如市场份额、费用分布或调查结果)时,通常最好使用环形图。本文将介绍如何使用 C# 和Aspose.Cells for .NET在 Excel 中创建环形图。本指南提供了两个完整的、可直接运行的代码示例:一个基本的单系列环形图和一个带有自定义颜色和图例设置的多系列环形图,方便您立即将强大的可视化功能集成到任何 .NET 应用程序中。
相关产品
针对 C/C++ 软件开发提供统一、完全集成的测试解决方案。
Parasoft Jtest用于应用软件开发的集成Java测试工具
Parasoft dotTEST降低C#和VB.NET开发风险,有效地实现符合C#和.NET开发的测试工具的要求
最新文章 MORE
相关文章 MORE
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@evget.com
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
慧都科技 版权所有 Copyright 2003-
2025 渝ICP备12000582号-13 
渝公网安备
50010702500608号
首页