|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
×
NX2406 版本后二次开发环境变化实践:如何解决“byte 不明确的符号”等抱错问题6 c1 j/ h$ q* X2 O
+ Z0 I: |7 g( N, l8 [在NX2406后的版本进行开发环境升级编译会发现编译不通过(除了相关函数废弃需要更新外)在自身编译环境也存在诸多变化。. g/ A5 C9 i" n3 F! f; D4 n
8 g7 G0 B1 O0 `) b1 k
* Q; @ x; I' ~+ I) S W
(1)Visual studio 选择 V143 ,之前版本 V142 ,否则在使用开发工具会出现版本兼容的提示
9 g1 e8 ]+ E5 T: D9 j5 L) E1 S
2 N% v: e0 D/ c+ v' K1 C& g
4 X, |# L9 b+ O0 M' u(2)C++的标准做了升级,需要使用C++17 的标准
/ v2 P. }3 q6 F7 C5 {+ |: H/ A# o! t5 E
: v+ i. Z, n# x2 }3 U
: ^: y: _2 h/ I$ _$ b, \8 l9 M: S
& b/ n$ H3 u( C- D" e/ ]3 Q" O- R: |/ x! f( H2 x2 ]7 t1 }
(3)正是因为标准的升级,会出现 “byte 不明确的符号”的抱错,主要原因是因为升级到C++17 出现了std::byte 的类型,而我们在开发过程中使用了 using namespace std;导致出现了冲突。在不使用这种类型的情况下,解决办法如下:2 K9 Y& Z" S& v g
* G6 `, `3 ]2 _3 f9 A% D3 u6 C, d S, p% {6 f8 _2 o7 J8 I: i
在预处理中加入:_HAS_STD_BYTE=0
1 H& F6 V- K( H: F5 Y" N$ [5 H; v2 c& \) C4 ^5 x$ A2 Q
( O& {5 M2 R) G6 P- t$ J
% J! |' J( z" t3 D( x- c
- L1 t. ^6 G" Z6 g: X4 R' Q9 T. B, m
(4) UGopen的编译库发生变化,需要重新进行替换,具体替换做法,如何获取所有的lib文件名称,之前的文章有所提及,大家可以参考。 Z$ n* k, K7 g5 Y) [
. L; H+ _% H# i) O
" b$ u7 }- r S, \! \8 ^二次开发编译器Visual Studio版本匹配常见问题和解决方案
' r4 S1 ?, m. N
0 t! v3 T# D$ X7 V: o+ J+ `) ?' r( v ]
' J+ T& A" W' `
5 s( {+ W; F, m& p0 ~7 O1 L+ J$ i# z1 Z5 Q9 P7 H9 [
当然别忘记更新库目录环境的地址; ]0 U, a4 w" h4 {
`( S; o6 L) K# k: }, L3 V" J( F Q, X- W `4 K& D
在解决上述问题后,编译基本能够通过,至于出现函数废弃的地方,需要根据开发实际情况,实用新的函数进行替换。: x7 g; J) d9 N9 q
7 q% N5 e. _$ D" }, _7 K: K4 v+ b# b/ G) R4 c
扫码关注微信公众号,获取更多内容6 |0 J* A3 D; \7 Y$ C2 o
4 p& l/ T, k( d2 w9 D- r. A; T) @ A9 c. q& W1 C/ g
' |% ]% F. X, ~3 N
|
|