|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
NX2406 版本后二次开发环境变化实践:如何解决“byte 不明确的符号”等抱错问题- N( |; G; y: A0 r0 Q& c
4 K* R: E# J5 Q; X7 U4 V
在NX2406后的版本进行开发环境升级编译会发现编译不通过(除了相关函数废弃需要更新外)在自身编译环境也存在诸多变化。3 o0 b5 Y( V5 I* x$ S. J3 X
3 L ?: k+ G; Z; }' a
+ d7 ?" d. a% L6 }
(1)Visual studio 选择 V143 ,之前版本 V142 ,否则在使用开发工具会出现版本兼容的提示) h" H+ X' E( {$ @9 X ]" `+ s2 K2 | {
2 r) J5 a# O1 R2 ?. ]. {
: ~: I& Z- J- j7 ~7 Y
(2)C++的标准做了升级,需要使用C++17 的标准
$ N! z# {, n- s& p+ m4 v$ Y. _3 z4 D4 E+ W8 ?% W2 G& `: t
( \' B+ M, y4 }1 ?6 P& U
6 [) i/ p+ Z( J; ~5 q& [; ]
' y* d7 `3 N6 @5 |
$ w& T0 R) w+ O8 @9 w' d4 O(3)正是因为标准的升级,会出现 “byte 不明确的符号”的抱错,主要原因是因为升级到C++17 出现了std::byte 的类型,而我们在开发过程中使用了 using namespace std;导致出现了冲突。在不使用这种类型的情况下,解决办法如下:2 W$ Q: x2 S% T+ G* Q
: v' N% ]" z7 W5 S7 d' x! J
! H7 u A2 |) |: n% `, U在预处理中加入:_HAS_STD_BYTE=0
8 @ a( z- F* G# m0 T
: g' u8 w( Y r" m
! }8 {# C B" G+ k8 X$ d% ]
) Q3 @ \8 M1 c+ v+ H, J, s9 {& h2 q
; y! y% ?% `6 B4 [, M
(4) UGopen的编译库发生变化,需要重新进行替换,具体替换做法,如何获取所有的lib文件名称,之前的文章有所提及,大家可以参考。8 F& j2 y1 l7 x$ U3 a
3 L4 C7 I" J9 q; U m+ u9 {/ b* Y
二次开发编译器Visual Studio版本匹配常见问题和解决方案+ k1 N6 ?) S' Q- D$ n& h
0 ?8 A* h3 [4 Z p' T) y4 {& a: x' D) f! i" @8 G
4 |/ O6 x( E! ]% a5 p4 W
0 r& [, W2 X+ Z. ?
/ c1 _- K W# |2 ?" w% b9 Y当然别忘记更新库目录环境的地址
* `* O8 [ O3 U m3 E& T- c. g3 k- c3 ^% P* h/ M
9 ~# y) Q, t5 w& r) e# E* |在解决上述问题后,编译基本能够通过,至于出现函数废弃的地方,需要根据开发实际情况,实用新的函数进行替换。
% E+ R) A2 k0 D0 c# D0 q& s+ d
( V% u5 Q7 ?1 _: k+ Y4 E5 S
" e4 x& [) `" v1 X扫码关注微信公众号,获取更多内容) x4 o% b1 ~, j- B
8 x# E0 d' n* D O
" M. j0 s+ W# X; o( W% I' H% ]( x3 i, K
|
|