STEPcode二次开发入门填坑
来源:互联网 发布:苹果软件开发教程 编辑:程序博客网 时间:2024/06/15 21:42
STEPcode二次开发入门填坑
本文是我在使用STEPCode进行二次过程中遇到的一些问题及解决方案
- STEPcode二次开发入门填坑
- STEPcode
- 入门填坑
STEPcode
STEPcode是MIT开发的一款用于解析STEP (ISO 10303) 协议的开源组件,实现了STEP协议中的诸多应用协议,如.stp格式CAD文件使用的AP203和AP214协议。
入门填坑
- 下载源码
- 下载 CMake 和 Visual Studio 2012 (用其他编译器也可,本文用的是VS2012)
- 解压后源码文件夹为:stepcode-master
- 进入源码文件夹,使用 CMake 生成 VS2012 工程文件,假设工程目录为:stepcode-project
- 编译整个工程
- 整个工程功能太多,进入源码目录 stepcode-master\example\ap203min
- 使用 CMake 生成 ap203min 工程,需设置‘STEPCODE_ROOT_DIR = stepcode-master目录’,假设工程目录为ap203min
- 直接编译会报错找不到某个头文件来着
- 重新用 CMake 生成 ap203min 工程,在 generate 前把那个和 git 相关的选项勾掉,让它选择本地的版本号
- 此时依旧没法编译 ap203min 工程,因为 ap203min\sc\schemas\sdai_ap203 里面的内容不全
- 从 stepcode-project 中将 schema 中的 sdai_ap203 工程复制并覆盖 ap203min 工程中的sc\schemas\sdai_ap203工程
- 此时编译会报项目名’ ‘已更改的错误,依旧无法编译
- 将与 sdai_ap203 工程相关的两个子工程 sdai_ap203 和 generate_cpp_sdai_ap203 “属性->通用属性->框架和引用”中引用关系全部去掉,再次编译这两个子工程可以通过
- 此时编译主工程会报”无法解析的符号错误”,应该是 lib 引用错误导致的
- 在把 sdai_ap203 复制过来的时候,其工程内部的引用关系还是来自于 stepcode-project工程,下面把他改过来
- 先将 sdai_ap203 工程中的源码文件全部移除,重新添加 ap203min\sc\schemas\sdai_ap203 目录下的源码文件
- 打开 sdai_ap203 的工程配置文件 sdai_ap203.vcxproj
- 将其中与 stepcode-project 有关的项目替换成 ap203\sc 中的项目
- 不能查找替换,因为其中涉及一些 cmd 命令行的目录
- 将 “cmake -HDir1 -BDir2” 中的 Dir1 改成 stepcode-master\example\ap203min 目录,Dir2 改成 ap203min 工程目录
- 将涉及 exp2cxx.exe 的引用目录改为 ap203min 下的 exp2cxx.exe (在 sc\src\exp2cxx\Debug 目录里)
- 再次编译继续出错,这次是 exp2cxx.exe 报错,因为它需要的 dll 文件找不到
- stepcode-project 工程将所有 dll 和 exe 文件统一输出到了 bin 文件夹下,但 ap203min 工程是输出到了各自工程的 Debug 目录下,自然找不到 dll,下面修改各子工程的输出目录,将 dll 和 exe 统一放到 bin 目录下
- 记得将 sdai_ap203.vcxproj 文件中关于 exp2cxx.exe 的调用目录也改到 bin 目录下
- 又发现 generate_cpp_sdai_ap203.vcxproj 中也用到了 exp2cxx.exe,因此也需要将路径改过来
- 再次编译 ap203min 工程依旧会出现10个”LINK2001 : 无法解析的外部符号”错误,经过仔细的排查,发现是由于实例化类的输入参数中带有默认参数,而默认参数解析错误导致的,例如 ap203min.cpp 中有一行”attr->Enum( new SdaiSi_prefix_var( pfx ) );”,其中 SdaiSi_prefix_var 这个类需要两个输入参数,但这里只传进去一个,另一个有默认值的参数,结果就报错了。
- 上面错误的原因找到了,SdaiCONFIG_CONTROL_DESIGNNames.h 这个头文件里声明了很多 extern 指针,而这些指针的定义在 SdaiCONFIG_CONTROL_DESIGN.cc 里面,由于是动态链接库,所以在链接时可能没找到这些指针的定义,于是就报LINK2001错误,现在将sdai_ap203 项目改成静态链接库类型,并重新配置好 sdai_ap203.lib 的输出目录后再次编译,就没有链接错误了,但是还有其他错误。
- 发现一种解决方法,在 Project->Settings->Link页,选 category 为custom,将 force file output 前打勾,即“强制文件输出”,该选项会忽略重定义错误,强行输出 exe 文件,虽然 exe 可能不能用,但在这里确实解决了问题。
未完待续…
0 0
- STEPcode二次开发入门填坑
- WORDPRESS 入门填坑
- VC二次开发MapX入门
- MapInfo教程--二次开发入门
- .NET cad 二次开发入门
- BIM 360 二次开发入门
- Revit二次开发之入门
- Deform二次开发入门
- Bentley 二次开发 入门配置
- revit二次开发-HelloWorld,入门
- ABAQUS二次开发-UMAT入门
- 美团robust热修复入门填坑
- 填坑~
- 填坑
- 填坑
- UG/NX二次开发入门手册
- ArcGIS二次开发入门(一)
- ArcGIS二次开发入门(一)
- 地图API获取发布版SHA1
- NXP i.MX 8处理器再扩军!全新i.MX 8X处理器剑指工业与汽车应用
- android 隐藏标题栏
- 探索性数据分析(EDA)
- java 内置对象
- STEPcode二次开发入门填坑
- Activity启动模式(集百家之长)
- 欢迎使用CSDN-markdown编辑器
- mybatis的基本使用
- Java之IO流(二)
- 【LeetCode】linked-list-cycle-ii
- 题目1168:字符串的查找删除
- 关于C++、C#实现EXCEL数据库批量导入数据库万行以上数据效率问题
- 对矩阵的认识