|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
NX2406 版本后二次开发环境变化实践:如何解决“byte 不明确的符号”等抱错问题
- e; R; D: h( ^/ p5 x2 }2 Y, |: W; a! r( G4 _" d; o4 l
在NX2406后的版本进行开发环境升级编译会发现编译不通过(除了相关函数废弃需要更新外)在自身编译环境也存在诸多变化。) }/ O. M# s" F. g. W, [. e
' K5 X- `- o6 q3 `
! J+ F1 s& Z4 n/ L0 f2 g& U(1)Visual studio 选择 V143 ,之前版本 V142 ,否则在使用开发工具会出现版本兼容的提示$ k& @" u" r1 a
6 l2 a$ e% K T% A+ _# i
) Z( {! _9 G# C(2)C++的标准做了升级,需要使用C++17 的标准
# t; o; ]6 K0 r6 J: G3 S. Q$ O" w7 @4 \
F: v- I9 [' @0 J! [
" h& y+ W9 v7 b. |: X0 \/ M2 p
0 Z, e- b+ C+ I1 c' j; x9 [
+ f, G$ B* r" ?( r2 s, c5 g(3)正是因为标准的升级,会出现 “byte 不明确的符号”的抱错,主要原因是因为升级到C++17 出现了std::byte 的类型,而我们在开发过程中使用了 using namespace std;导致出现了冲突。在不使用这种类型的情况下,解决办法如下:" C3 N* u* W$ N" A! A
, A( Z3 d' q" A. r
1 F1 E- G" D, j, k K2 E! Z, N* Y在预处理中加入:_HAS_STD_BYTE=0
3 R& r: I5 p" m' d1 F9 L* Q2 j/ m5 p
5 ^4 X, l, b6 p7 ~) @9 a- i4 E. e' V
- V/ c0 C! a( n# ?2 l
: c& j4 r8 D5 K# V' b
. \9 \8 B& |0 p0 h% a* o; u6 k2 S
(4) UGopen的编译库发生变化,需要重新进行替换,具体替换做法,如何获取所有的lib文件名称,之前的文章有所提及,大家可以参考。+ W0 Q& x8 W6 M w
( u* u7 t6 O+ {6 E( T% w/ E9 w$ Y+ ?, c( D
二次开发编译器Visual Studio版本匹配常见问题和解决方案 h( V$ I4 {1 X$ x& e1 p3 B
$ C4 J$ O. e2 o4 F$ N5 w: r! F; q1 k: T( w8 R( T1 J
* l3 j, H4 O2 U- ]8 S6 N3 L
9 u8 Z$ y& f2 g6 r
. t6 g+ U( {0 m: P, M当然别忘记更新库目录环境的地址
$ i9 U2 c3 c" ~/ w
# _8 r6 j8 g0 ?: L3 i) l2 z& a. m9 b: S6 y) j& S
在解决上述问题后,编译基本能够通过,至于出现函数废弃的地方,需要根据开发实际情况,实用新的函数进行替换。# F1 {; V9 z$ I, B: L
3 T- h( n, S% h5 Z O. F8 [7 d! f! Z8 E
8 r# G/ L8 ]5 ~7 c- ~扫码关注微信公众号,获取更多内容2 Q* I+ h5 Q# F, M# O2 K
8 a( ~! k1 v3 N% [5 [: [% M
0 L# }! F* x% t1 o: [
9 N+ D3 T+ A% S |
|