http://maruf.ca/rade/web/CAA_RADE_Troubleshooting.htm
当使用CAA碰到无法解决的问题,请尝试以下操作:
1. 更新运行时视图。
这会将所有“资源”文件复制到运行时视图(框架内CNEXT目录下的所有内容)。
2. 使用Build-> mkmk ...对话框而不是F7重新编译代码。
当更改Imakefile.mk或IdentityCard.h文件以后,需要使用mkmk...进行重新编译代码。
3. 检查Imakefile.mk文件以确保它包含需要的所有内容。
如果编译时报错:“致命错误LNK1120:177无法解析的外部符号”,或者“错误LNK2019:不可解析的外部符号...”或“错误LNK2001:不可解析的外部符号...”标识的错误列表,这可能是Imakefile.mk中没有足够信息的错误。
以下为相对比较全的Imakefile.mk内容,可直接复制使用
# COPYRIGHT Dassault Systemes 2020
#======================================================================
# Imakefile for module DJCmds.m
#======================================================================
#
# Oct 2020 Creation: Code generated by the CAA wizard 罗大耳朵
#======================================================================
#
# SHARED LIBRARY
#
BUILT_OBJECT_TYPE=SHARED LIBRARY
# DO NOT EDIT :: THE CAA2 WIZARDS WILL ADD CODE HERE
WIZARD_LINK_MODULES = DI0PANV2 CATMathematics CATDialogEngine \
CATSchItfCPP CATDraftingInterfaces CATTPSItf \
JS0GROUP JS0FM CATPspUtilities \
CATApplicationFrame CATViz \
CATMecModInterfaces CATObjectSpecsModeler \
CATGeometricObjects CATMathStream CATTopologicalObjects \
CATGeometricOperators CATObjectModelerBase KnowledgeItf \
CATGitInterfaces CATSketcherInterfaces CATVisualization \
CATMeasureGeometryInterfaces CATInteractiveInterfaces \
CATProductStructure1 CATProcessInterfaces CATPartInterfaces \
CATTopologicalOperators CATManufacturingInterfaces CATMechanicalModeler \
JS0FM JS0GROUP CATXMLParserItf \
AD0XXBAS CD0FRAME \
DI0STATE AC0SPBAS \
ProcessInterfaces \
CATManufacturingInterfaces \
CATSurfaceMachiningInterfaces \
CATProductStructure1 \
CATLiteralFeatures KnowledgeItf \
CATIAApplicationFrame \
CATProductStructure1 \
KnowledgeItf \
CATPartInterfaces CATSketcherInterfaces \
CATMechanicalModeler \
CATGitInterfaces \
CATVisualization \
CATAssemblyInterfaces \
CATConstraintModeler \
CATMathStream \
CATConstraintModelerItf \
CATUdfInterfaces \
JS0SCBAK \
CATTopologicalOperators \
CATInteractiveInterfaces \
Mathematics \
CATPrismaticMachiningInterfaces CATPartInterfaces \
PrismaticMachiningInterfacesUUID \
CATSketcherInterfaces CATUdfInterfaces \
CATSaiSpaceAnalysisItf \
CATMechanicalCommands \
CATVisualization \
CATCclInterfaces \
CATInteractiveInterfaces \
CATMeasureGeometryInterfaces AC0XXLNK \
SpecsModeler\
CK0FEAT JS0CORBA \
YP00IMPL YN000MAT\
CATCGMGeoMath \
CATWkAssyInterface CATAssemblyInterfacesUUID \
CATMechanicalModelerUI \
CATTopologicalObjects \
CATConstraintModeler \
CATGeometricOperators \
InfItf \
InfItfCPP \
CATTTRSItf \
CATTTRSUUID \
InfProIDL \
GeoNurbsTools \
CATFreeFormOperators \
CATAdvancedMachiningInterfaces \
ProductStructurePubIDL \
CATTessellation CATAdvancedMathematics \
CATTPSItfCPP \
CATJNIAnnotationTypeLib \
CATTPSProIDL \
CATTPSPubIDL \
CATTPSUUID \
JS0GROUP JS0FM \
CATPartInterfaces \
CATSketcherInterfaces \
CATVisualization \
CATGeometricOperators \
CATProductStructure1 \
CATMathStream \
CATSaiSpaceAnalysisItf \
JS0SCBAK \
SimulationItf \
CATMechanicalModelerUI \
CATMechanicalModeler \
CATProductStructure1 \
CATTTRSItf \
CATTTRSUUID \
CATInteractiveInterfaces \
CATTPSUUID \
CATMathStream \
CATCGMGeoMath \
CATTopologicalObjects \
DI0PANV2 \
CATMathematics CATDialogEngine
# END WIZARD EDITION ZONE
LINK_WITH = $(WIZARD_LINK_MODULES)
# System dependant variables
#
OS = AIX
#
OS = HP-UX
#
OS = IRIX
#
OS = SunOS
#
OS = Windows_NT
4. 检查IndentityCard.h文件以确保它包含所需的所有内容。
如果出现诸如“致命错误C1083:无法打开包含文件:'SomeFile.h'”之类的错误,则最有可能是因为您IndentityCard.h文件中未写入包含“ SomeFile.h”模块名称。
以下为相对比较全的IndentityCard.h内容,可以直接复制使用:
// COPYRIGHT Dassault Systemes 2020
//===================================================================
//
// IdentityCard.h
// Supplies the list of prerequisite components for framework DJFrameWork
//
//===================================================================
//
// Usage notes:
// For every prereq framework FW, use the syntax:
// AddPrereqComponent ("FW", Public);
//
//===================================================================
//
// Oct 2020 Creation: Code generated by the CAA wizard 罗大耳朵
//===================================================================
// DO NOT EDIT :: THE CAA2 WIZARDS WILL ADD CODE HERE
AddPrereqComponent("System",Protected);
AddPrereqComponent("ApplicationFrame",Public);
AddPrereqComponent("Dialog",Public);
// END WIZARD EDITION ZONE
AddPrereqComponent("ApplicationFrame",Protected);
AddPrereqComponent("CATAssemblyInterfaces",Protected);
AddPrereqComponent("ObjectModelerBase",Protected);
AddPrereqComponent("ProductStructureUI",Protected);
AddPrereqComponent("DialogEngine",Protected);
AddPrereqComponent("Mathematics",Protected);
AddPrereqComponent("Dialog",Protected);
AddPrereqComponent("MechanicalModelerUI",Protected);
AddPrereqComponent("MechanicalModelerUI",Public);
AddPrereqComponent("PartInterfaces",Public);
AddPrereqComponent("ObjectSpecsModeler",Public);
AddPrereqComponent("ConstraintModeler",Public);
AddPrereqComponent("ConstraintModelerInterfaces",Public);
AddPrereqComponent("ConstraintModelerUI",Public);
AddPrereqComponent("SketcherInterfaces",Public);
AddPrereqComponent("GeometricOperators",Public);
AddPrereqComponent("ProductStructureInterfaces",Public);
AddPrereqComponent("ProductStructure",Public);
AddPrereqComponent("SpaceAnalysisInterfaces",Public);
AddPrereqComponent("SimulationBase",Public);
AddPrereqComponent("SimulationInterfaces",Public);
AddPrereqComponent("GSMInterfaces",Public);
AddPrereqComponent("GSOInterfaces",Public);
AddPrereqComponent("LiteralFeatures",Public);
AddPrereqComponent("DraftingInterfaces",Public);
AddPrereqComponent("CATTTRSInterfaces",Public);
AddPrereqComponent("CATTPSInterfaces",Public);
AddPrereqComponent("ManufacturingInterfaces",Public);
AddPrereqComponent("SurfaceMachiningInterfaces",Public);
AddPrereqComponent("DMAPSInterfaces",Public);
AddPrereqComponent("GeometricObjects",Public);
AddPrereqComponent("KnowledgeInterfaces",Public);
AddPrereqComponent("LiteralsEditor",Public);
AddPrereqComponent("MechanicalModeler",Public);
AddPrereqComponent("Tessellation",Public);
AddPrereqComponent("Visualization",Public);
AddPrereqComponent("VisualizationBase",Public);
AddPrereqComponent("MecModInterfaces",Public);
AddPrereqComponent("NewTopologicalObjects",Public);
AddPrereqComponent("MechanicalCommands",Public);
AddPrereqComponent("TopologicalOperators",Public);
AddPrereqComponent("InteractiveInterfaces",Public);
AddPrereqComponent("PrismaticMachiningInterfaces",Public);
AddPrereqComponent("ToolPathEditorInterfaces",Public);
AddPrereqComponent("FreeFormOperators",Public);
AddPrereqComponent("CATIAApplicationFrame",Public);
AddPrereqComponent("ComponentsCatalogsInterfaces",Public);
AddPrereqComponent("ProcessPlatformBase",Public);
AddPrereqComponent("ProcessPlatformVisu",Public);
AddPrereqComponent("AdvancedMachiningInterfaces",Public);
AddPrereqComponent("ObjectModelerInterfaces",Public);
AddPrereqComponent("SketcherModeler",Public);
AddPrereqComponent("MeasureGeometryInterfaces",Public);
AddPrereqComponent("InfInterfaces",Public);
AddPrereqComponent("XMLParser",Public);
AddPrereqComponent("AdvancedMathematics",Public);
AddPrereqComponent("CATPlantShipModeler",Public);
AddPrereqComponent("CATSchPlatformInterfaces",Public);
5. dll库或对象损坏或链接错误。
对于通常C++项目,我们会在Visual Studio中执行Build-> Clean Solution删除所有对象,然后编译重新生成。
要在CAA RADE中执行此操作,必须使用命令行(没有集成按钮)。
5.1. 打开命令窗口
5.2. 输入命令“ mkRemoveDo -a”,然后按Enter
5.3. 使用mkmk ...选项重新编译代码。
6. Visual Studio中的警告
Visual Studio 2005中存在一个bug,导致它引发许多警告(如果没有其他错误,程序可以正常编译)。但这些警告是误报,编译器本来不应将其注册为警告。如果觉得这些警告很烦人,可以将
LOCAL_CCFLAGS = / wd4251
添加到每个模块的Imakefile.mk文件中的
OS = Windows_NT
后面来禁用这些警告。