|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
NX2406 版本后二次开发环境变化实践:如何解决“byte 不明确的符号”等抱错问题6 j, m P* A8 `" P+ O
5 {$ t6 e* y2 U( k7 h4 M) e( ]
在NX2406后的版本进行开发环境升级编译会发现编译不通过(除了相关函数废弃需要更新外)在自身编译环境也存在诸多变化。
0 \( J( V, H- h6 X5 q
! j8 \$ z* n7 V) s& T+ u. b# p
+ }! `' |# j( l; X8 e(1)Visual studio 选择 V143 ,之前版本 V142 ,否则在使用开发工具会出现版本兼容的提示( X: `) \, Z2 i2 P* Q+ j- t# W9 R# J+ S2 n
+ u( C0 A- S2 G3 U3 g. r/ f6 ^* V% g* j1 b' C/ r5 Y( C0 D G9 w
(2)C++的标准做了升级,需要使用C++17 的标准
/ L: h: l: R ^! X4 s, j( G8 z8 c I7 [ e& m: X4 J0 F, t+ C
; o# Q% W; O8 |
5 ?% T$ ~! W9 H N) U w( y5 l
) a9 t% E: k/ H% i8 g6 z# `8 i
(3)正是因为标准的升级,会出现 “byte 不明确的符号”的抱错,主要原因是因为升级到C++17 出现了std::byte 的类型,而我们在开发过程中使用了 using namespace std;导致出现了冲突。在不使用这种类型的情况下,解决办法如下:! O! l# }2 Z* F+ a
& Q' T3 ^6 X6 s" H! Z1 c
/ \! H4 O" B% x2 Z6 f& i在预处理中加入:_HAS_STD_BYTE=0
1 o2 y8 ]. E7 N; X% A8 y
, Y2 q( g, l+ K0 E5 V6 }+ U/ v0 }5 z+ X: C I4 E) ~
+ C3 `4 _- a; {# w) _4 [$ s, Q
: ^. d2 J# F7 v: q! D9 a0 E
" i$ H/ K& w+ l; ~: ~: \(4) UGopen的编译库发生变化,需要重新进行替换,具体替换做法,如何获取所有的lib文件名称,之前的文章有所提及,大家可以参考。
+ G% r& z& n: a& h. o( ?$ x% A9 h" e* F2 Y# A& S v& w
' Z2 D& U) W, k% g" k7 `& m
二次开发编译器Visual Studio版本匹配常见问题和解决方案
. u# l! g3 M" S- j& G: z( j$ U' {7 }$ Q! y2 O( r( q7 C
# F1 k9 X5 G1 @$ X2 d7 P' u
+ ?, B! V: R0 c# ]
& I0 A7 n- Q* |3 R8 d0 v% u
/ I$ N8 \5 U' |当然别忘记更新库目录环境的地址
9 D# E( ]5 s2 J2 n% _" n& h1 J) P
0 p! a3 ^# L8 [8 G, w) o! v# x% s' ^( P. y9 G" D1 ^) C
在解决上述问题后,编译基本能够通过,至于出现函数废弃的地方,需要根据开发实际情况,实用新的函数进行替换。
$ a: H9 `2 j" N0 q m0 H7 f: T9 Q4 [' s% O4 a8 ~8 q, r3 Y
! |3 K7 F6 \! f& o扫码关注微信公众号,获取更多内容
" Z& q! g2 p& E; P. Q
4 p" T, j" H! p- @( \+ N6 x3 M# }- @1 X
: `3 e5 o4 P% b: J/ d% f |
|