|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
NX2406 版本后二次开发环境变化实践:如何解决“byte 不明确的符号”等抱错问题
$ Q# I' |2 O" t7 e, l: d' q
+ J" I/ F) y5 x6 d$ `在NX2406后的版本进行开发环境升级编译会发现编译不通过(除了相关函数废弃需要更新外)在自身编译环境也存在诸多变化。
2 m6 _( ^* h* e/ l
: f* R! u0 J& I( p+ A, a& j
# Z Z. c8 [; o) F3 S0 O8 o) w(1)Visual studio 选择 V143 ,之前版本 V142 ,否则在使用开发工具会出现版本兼容的提示) a7 |$ j. C8 o5 h* g3 ^9 \- v. {
+ l4 L/ k- X3 i% I. ]+ l' I; P a3 f4 k2 b
(2)C++的标准做了升级,需要使用C++17 的标准# a3 q9 I" \0 S' t* e( d/ Y
+ a5 w, Q4 b' z) Q& x0 W) r, ^& o0 B
5 }4 G6 B. z( r8 k6 P3 E
! ], g/ o1 L# n- ~4 u' V+ R
' p" t: `# y0 L(3)正是因为标准的升级,会出现 “byte 不明确的符号”的抱错,主要原因是因为升级到C++17 出现了std::byte 的类型,而我们在开发过程中使用了 using namespace std;导致出现了冲突。在不使用这种类型的情况下,解决办法如下:/ ~1 K6 t) Q( _$ j
# O. |% f% H/ y" h0 L
2 f3 q6 {" c1 C% _' i5 Z
在预处理中加入:_HAS_STD_BYTE=0 W% W0 ^6 j" C( K. x% t% m. m" S4 \
& E. b; S# n9 a. d, y1 |; D& E2 X7 \# p; w# b8 d
# G& R- ^! I& X
$ d/ H3 C# ^& M I
. _5 L. ?0 B+ R& y0 ~7 i(4) UGopen的编译库发生变化,需要重新进行替换,具体替换做法,如何获取所有的lib文件名称,之前的文章有所提及,大家可以参考。
( e/ \2 |7 [$ _8 t% T' h3 ]; q3 F2 u$ L3 G, Y
9 n, t: C! e9 c. I
二次开发编译器Visual Studio版本匹配常见问题和解决方案
0 j( s4 Y7 u6 z, {! x- [( |6 U2 E2 G7 P# b
5 J. s/ t) Y: C* u i
- y- r; c8 H" o$ o
+ A/ @# H* f1 f' p8 @/ J% k% v, {/ d2 s- O& G3 G } O
当然别忘记更新库目录环境的地址
( }# H4 y: o: P' [+ N. I
% f1 |' ~# V1 C
0 D" z* p' I- G5 t+ \! ]7 q在解决上述问题后,编译基本能够通过,至于出现函数废弃的地方,需要根据开发实际情况,实用新的函数进行替换。; h) y- Z) }# M# V3 [. Q
& T6 u2 U w" V+ ~9 h
8 O' q: ^' a; S7 @! F扫码关注微信公众号,获取更多内容/ z3 m, K) c! b" b! N& g
4 G4 _ d4 }, ^
1 W: v1 S* o6 ]' F; s- p! a
7 F' o& C6 [: x/ O& b! l
|
|