|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
NX2406 版本后二次开发环境变化实践:如何解决“byte 不明确的符号”等抱错问题0 ~9 N7 e+ F) Z u6 T$ w* c
7 o( D- t" L0 M4 C# |5 E2 u2 `
在NX2406后的版本进行开发环境升级编译会发现编译不通过(除了相关函数废弃需要更新外)在自身编译环境也存在诸多变化。
/ k& P) b. j1 q x( x; B6 ?1 n2 w6 ~3 x; v
' J' D: r. g: q& {# w
(1)Visual studio 选择 V143 ,之前版本 V142 ,否则在使用开发工具会出现版本兼容的提示4 n1 }/ \8 t- T6 p2 l
) U! h4 i5 q3 R E* o3 z
1 }, T# Z0 ]. b1 Q5 v0 T' g(2)C++的标准做了升级,需要使用C++17 的标准
& i7 m8 z* S6 r+ `7 u0 v$ X; H5 O( c# g, U5 T
( l! i6 |# }: p7 c. g
: \9 V; A' y, x( k9 C) ~% r& S6 {0 C# L6 n- M
" `0 b: E) ]: g(3)正是因为标准的升级,会出现 “byte 不明确的符号”的抱错,主要原因是因为升级到C++17 出现了std::byte 的类型,而我们在开发过程中使用了 using namespace std;导致出现了冲突。在不使用这种类型的情况下,解决办法如下:# E+ \4 V; l& O: Q* A h7 G
5 X, z- H7 p M% v) \; Z# {
1 S9 |- ~8 O2 m! z. O在预处理中加入:_HAS_STD_BYTE=0 7 c' b3 j8 ~* D
: r7 Z* G4 w# i" w' i2 ^& @
) `+ a3 z, U1 i, \( e0 F
, M. Z7 Q( p, x; @2 }
L0 I7 w' A5 [3 X" i& z
$ n% K N+ Q8 O4 |+ T$ ~' h1 r1 C
(4) UGopen的编译库发生变化,需要重新进行替换,具体替换做法,如何获取所有的lib文件名称,之前的文章有所提及,大家可以参考。3 j! O' j4 ^% Q7 [# E4 t' S0 g: A
$ a- u# a9 u/ {' v$ f3 ?( h
! O! {; ]# M% O二次开发编译器Visual Studio版本匹配常见问题和解决方案* z( {/ s' v' j H1 T f
" c7 g: I" y! C8 J C& D
# w+ i1 f6 G5 _$ F. ?; L. e
2 [7 }8 Z+ |4 W- C7 r
% u' T: c8 V5 F- C, k: f/ Z$ t8 H Y( x3 D& F
当然别忘记更新库目录环境的地址
) N% A6 n. H, z) M( w3 ^( j
/ y/ C& ~; _7 p- c/ h
6 F$ {+ x. {3 B3 G/ q" N在解决上述问题后,编译基本能够通过,至于出现函数废弃的地方,需要根据开发实际情况,实用新的函数进行替换。
+ |6 K% I# f2 l- G1 B1 s7 u: ?( ^7 V9 Q* R- |
" A4 I) F. j- S/ L3 a
扫码关注微信公众号,获取更多内容
6 p: P4 v' c* |% x4 P$ a
$ r- r. L+ f" X8 W$ g# i2 m5 Y8 r% o3 v
4 R2 B& `. \9 \! _, a" u
|
|