|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
NX2406 版本后二次开发环境变化实践:如何解决“byte 不明确的符号”等抱错问题
7 U9 ~% ]- }+ y! p' u" b
. m0 H; D6 I& W, ^# D在NX2406后的版本进行开发环境升级编译会发现编译不通过(除了相关函数废弃需要更新外)在自身编译环境也存在诸多变化。* h" e. s) e* ^ \& w, q1 h
0 `3 q1 ^- t' L2 a. ^" t6 H: U2 q& h( e- L
(1)Visual studio 选择 V143 ,之前版本 V142 ,否则在使用开发工具会出现版本兼容的提示
, Y6 Y3 _4 G; m; \8 A" X
5 K; t k( O8 A. k& T+ n" s! ~: k8 B' Z6 o
(2)C++的标准做了升级,需要使用C++17 的标准
; \% U: O. A% c) d/ s+ E& w5 x" g P) G
* i- Z! w4 f1 y! f( a8 Z3 O
- m, q6 q* G3 O/ j
; Q+ N, l7 J: l2 q& q+ ^1 O
8 f o. `" n. r* m+ V(3)正是因为标准的升级,会出现 “byte 不明确的符号”的抱错,主要原因是因为升级到C++17 出现了std::byte 的类型,而我们在开发过程中使用了 using namespace std;导致出现了冲突。在不使用这种类型的情况下,解决办法如下:
% x$ q% d# _5 o7 J' A. S( A
8 V6 u! `% |. S C
6 g. I: H, A5 w' M在预处理中加入:_HAS_STD_BYTE=0 2 _& H4 \' D) L% n- v# j# I
4 Z$ c% v" {2 _
7 L* \4 I W+ b# U( S2 U
7 k; ?" o) ~ o+ C% t- J
) l8 i. a1 l/ ^. U2 Q, n
* @! K& C% X: Q6 w% B(4) UGopen的编译库发生变化,需要重新进行替换,具体替换做法,如何获取所有的lib文件名称,之前的文章有所提及,大家可以参考。1 |& z6 b9 Y. [2 R- n) {
/ L; l T, r+ ^1 e( y5 f3 u- C( O. i$ r# ?% v( e" {
二次开发编译器Visual Studio版本匹配常见问题和解决方案/ l9 B. W. u) @/ \% T- f9 i' x
% \9 d& n% j0 u: q2 Y, ]
" A: z& j _( X i7 q
3 X7 D( }! p6 J" A6 x( h0 N f3 |; c5 M+ p! s# V
. j" ~+ s$ U/ \7 Y- q1 x5 n当然别忘记更新库目录环境的地址
) R+ r3 L! ?: s$ w' Y" D3 P* ` R6 p$ y3 F. W
) D% F* W, }( g6 k! A6 @; M
在解决上述问题后,编译基本能够通过,至于出现函数废弃的地方,需要根据开发实际情况,实用新的函数进行替换。
* q9 Y. Y. c' ~% e; d4 ^8 f4 n/ M, Q7 R7 d1 f4 K5 n
% y8 r- E! A) o9 i6 [$ B( L
扫码关注微信公众号,获取更多内容) X A; R, F6 [( o5 p" w) G- Z
a$ P2 w& X- r2 y* U6 u
D7 z6 c$ X$ L( a: B! d1 N l4 a$ @( i/ u2 `
|
|