|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
NX2406 版本后二次开发环境变化实践:如何解决“byte 不明确的符号”等抱错问题% ~3 y/ Y4 l- U7 V% A" a
7 D( c0 M0 _) N" }! r在NX2406后的版本进行开发环境升级编译会发现编译不通过(除了相关函数废弃需要更新外)在自身编译环境也存在诸多变化。
- \, ^( W) I+ ^! ^& R; d: q7 c# f# q" W/ @; {( j
% m5 A+ B: t7 |; H9 C |(1)Visual studio 选择 V143 ,之前版本 V142 ,否则在使用开发工具会出现版本兼容的提示7 V" W. ?& h5 L0 Y& ]8 k2 {1 d
; \$ G: F7 }+ V. I
4 y/ q/ U! s6 s+ @% J/ W(2)C++的标准做了升级,需要使用C++17 的标准& v' A1 {" W+ b+ { Y
* l9 B1 v0 U, D. V( {/ Z2 D
# s+ `! S( T2 O- l: R
* y: K( |& X. D+ q7 U% x. W) i' |$ ]4 T
8 D& Q1 _8 g6 H" x v' h4 i
(3)正是因为标准的升级,会出现 “byte 不明确的符号”的抱错,主要原因是因为升级到C++17 出现了std::byte 的类型,而我们在开发过程中使用了 using namespace std;导致出现了冲突。在不使用这种类型的情况下,解决办法如下:# ]3 n$ z8 Y; O1 ^
+ u) N8 x$ k% Q# N/ W4 [
' a6 Y# L0 o. B. A$ |在预处理中加入:_HAS_STD_BYTE=0 5 x; T* y- h2 n! R9 A0 E* @
- ]" h! U1 E- R7 l! @+ t* x1 K( c/ a
% w* X( k* q: C9 I! y k/ `
$ O" Q) T4 W1 \% X1 z* D
( s- o/ ~8 n! v3 ?% n
/ j; ?4 ]8 O/ V0 G+ @7 V7 A! x(4) UGopen的编译库发生变化,需要重新进行替换,具体替换做法,如何获取所有的lib文件名称,之前的文章有所提及,大家可以参考。
0 V4 K. Y4 Z7 f, G8 |: e5 l, B* R; J% _+ V$ w0 ^- h, {' D% r. ]
: y. \! m# J7 O二次开发编译器Visual Studio版本匹配常见问题和解决方案/ @ O6 y: A1 u
: b* L X. r* E6 i4 _
j+ D1 y7 x3 K4 W% v& W
* X( _0 ~. [, C/ O; V( D0 D1 w9 D1 S& w
% s; }" P- g1 l. |' s
当然别忘记更新库目录环境的地址) k! i4 T! y6 L0 [8 {
+ p7 P0 e. o, j
+ Y. p& b, l9 F- a4 A
在解决上述问题后,编译基本能够通过,至于出现函数废弃的地方,需要根据开发实际情况,实用新的函数进行替换。8 g$ @* s- O' a1 G
1 o+ r, T9 K+ @
* i) i& s" p6 A- K+ n7 O7 n9 b; |扫码关注微信公众号,获取更多内容 }6 s$ J! M& d7 q
# w4 j& C8 R! Q$ n7 a
; D5 z+ A$ E, ]3 `: P! E7 P5 C; l& n, m
% M e' X5 o6 O; D; h) [+ o/ l; S( U |
|