|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
NX2406 版本后二次开发环境变化实践:如何解决“byte 不明确的符号”等抱错问题
: e' h/ h7 D. W" ]; l7 @9 ^
- s6 ], B6 y* T) o% K& K- L在NX2406后的版本进行开发环境升级编译会发现编译不通过(除了相关函数废弃需要更新外)在自身编译环境也存在诸多变化。
" `0 q1 {5 s0 r9 U" G) \$ _8 }9 Z9 `6 c7 w
! Y# e) t9 R3 d" ^* D9 T
(1)Visual studio 选择 V143 ,之前版本 V142 ,否则在使用开发工具会出现版本兼容的提示# g8 w! I- r2 q9 w
' S& W8 j3 e. g3 N6 T
9 x. Q1 `6 B. F9 R" V(2)C++的标准做了升级,需要使用C++17 的标准
/ V. J6 V; V" p2 r e
7 j: Q2 r/ d) Y e/ b2 x% B" o5 i, m+ d- k3 G! z6 V
9 _* K. _8 t/ x- M- r. m" ^) Z$ K
$ B& z. p4 X" F
4 _* S8 j9 v) Z(3)正是因为标准的升级,会出现 “byte 不明确的符号”的抱错,主要原因是因为升级到C++17 出现了std::byte 的类型,而我们在开发过程中使用了 using namespace std;导致出现了冲突。在不使用这种类型的情况下,解决办法如下:
; T/ R6 y2 K3 P7 r" o! N g0 i z4 ?! j' r
k( D7 `0 W/ d+ H" r9 W4 ]
在预处理中加入:_HAS_STD_BYTE=0
& P V( `, I3 K. I$ B1 _6 g. z' N1 F" |
4 k8 D( e( M$ d
: b, o% D- ~* B' {3 m2 s
& P" C5 W& H1 Z, H4 [
3 w- u4 i0 J$ c+ a& z" M/ w6 }(4) UGopen的编译库发生变化,需要重新进行替换,具体替换做法,如何获取所有的lib文件名称,之前的文章有所提及,大家可以参考。
. a( E% E/ r0 m8 h- ` ^
0 ?1 a% O0 ~9 U& a1 F. v& \
: X. g/ |7 `* H4 X% _5 _4 S+ \二次开发编译器Visual Studio版本匹配常见问题和解决方案5 a/ `+ @# u9 Q; ?8 |3 w' v
: v- F9 X; G& w/ V2 o/ W m2 F
! c& O6 N: `8 r: Z- n* G- i5 {( K
9 R, \" K% H0 F# { ~
) Y' d- H% A0 J: `: Q
& x* ]5 @. a! l' I1 H# c
当然别忘记更新库目录环境的地址" J% y) f3 ~9 L* ]
2 n+ r% K$ M4 X7 B7 `8 A Y# c4 o& x( z; W
在解决上述问题后,编译基本能够通过,至于出现函数废弃的地方,需要根据开发实际情况,实用新的函数进行替换。
# g# L) c( L. F3 K" B( R+ ]; U/ C8 Y3 g
9 h8 m2 F6 { |3 Z: n" m扫码关注微信公众号,获取更多内容
, n2 @, n$ Z; s5 c" s, C; Y1 i I9 u& j) a7 X5 J5 d
" F3 `" Q, W. g0 t* K
9 K* o2 [8 }: S. y9 ]' x+ E
|
|