|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
NX2406 版本后二次开发环境变化实践:如何解决“byte 不明确的符号”等抱错问题$ z3 S) l! P# d4 G, o
$ N n5 b/ h! d# J+ ~& U d+ R
在NX2406后的版本进行开发环境升级编译会发现编译不通过(除了相关函数废弃需要更新外)在自身编译环境也存在诸多变化。
: \3 I- n! e; B3 L+ Y2 R
& i1 v# j0 X* l ~$ R7 }7 P: n; ?
. V9 x, Z ^% w5 X: I k' P(1)Visual studio 选择 V143 ,之前版本 V142 ,否则在使用开发工具会出现版本兼容的提示0 k! w' t: }+ P* H% U" f0 Z
# m; N- F( l' n# X$ ]9 o- L: ^6 x9 R, b
/ R- u [! \0 i7 V& a) z" K$ g8 C7 v
(2)C++的标准做了升级,需要使用C++17 的标准. G1 y2 p4 Q5 r, m; Q
6 e1 p$ \: X T8 Q2 N. N
3 k" {0 K+ Y1 e1 a0 \4 v W# m
+ T& \4 S" {" S* n. m, \8 C5 O: T6 D2 c
& R/ ^& k- y8 t1 Q
(3)正是因为标准的升级,会出现 “byte 不明确的符号”的抱错,主要原因是因为升级到C++17 出现了std::byte 的类型,而我们在开发过程中使用了 using namespace std;导致出现了冲突。在不使用这种类型的情况下,解决办法如下:, [! `- j- a5 e
; w1 V: Y: ~$ C) ~5 k, K9 a3 `5 |6 {1 r
在预处理中加入:_HAS_STD_BYTE=0 2 E6 F- C3 T8 f$ b* p1 P
& W4 p5 h6 M9 ] c4 o- J2 V) g. d% i* T
4 V r9 b% ]; C( m, ]
8 [3 J- a2 l& p' T) k. \+ Z
5 t) x5 R q( Q7 c% v(4) UGopen的编译库发生变化,需要重新进行替换,具体替换做法,如何获取所有的lib文件名称,之前的文章有所提及,大家可以参考。
* ~; D7 A" T6 [. N4 J, p
" C7 j" n7 D+ {; J! i0 q* `: ]2 J7 ~' Z
二次开发编译器Visual Studio版本匹配常见问题和解决方案
4 X% S9 [3 R! q% y7 {4 O/ A- e0 a% ~6 M" R
( H! x# C$ n! Q R
# s9 c9 F' u6 R5 w3 R
* ^ Z- H3 b! o, V2 a7 I% U; W n9 Q, P9 ~
当然别忘记更新库目录环境的地址$ @, G" |0 ~; i5 s5 N+ V
0 P" b3 H% U6 P. y
! f4 \' b5 e( `) e) T在解决上述问题后,编译基本能够通过,至于出现函数废弃的地方,需要根据开发实际情况,实用新的函数进行替换。
: `, a; R" d# F/ ]$ ?0 i+ I
9 _7 C. S$ [6 P) A9 r1 ^( e
- o9 E5 |7 l$ G+ T2 y6 P扫码关注微信公众号,获取更多内容) E, ^# V! E9 X F" l; Z2 Y2 n
2 h" A; l; R! b! f
+ Q9 |9 H; P1 K8 z* _
( f9 w3 w5 R5 `, n; j9 c |
|