From 08026271d68cc5d4333268e692869f080d808b38 Mon Sep 17 00:00:00 2001 From: "A. Jiang" Date: Sat, 16 Dec 2023 16:53:19 +0800 Subject: [PATCH] =?UTF-8?q?14=20=E9=A2=98=EF=BC=9A=E5=88=A9=E7=94=A8?= =?UTF-8?q?=E9=87=8D=E6=95=B4=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 原理: Itanium ABI 上变量 ss::a; 的重整名为 _ZN2ss1aE 。 在 MSVC 上需要用 pragma 告诉链接器使用 MSVC ABI 的重整名 ?a@ss@@3HA 。 --- .../\347\254\25414\351\242\230/F.v.S..cpp" | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 "src/\347\276\244\345\217\213\346\217\220\344\272\244/\347\254\25414\351\242\230/F.v.S..cpp" diff --git "a/src/\347\276\244\345\217\213\346\217\220\344\272\244/\347\254\25414\351\242\230/F.v.S..cpp" "b/src/\347\276\244\345\217\213\346\217\220\344\272\244/\347\254\25414\351\242\230/F.v.S..cpp" new file mode 100644 index 00000000..2c88f476 --- /dev/null +++ "b/src/\347\276\244\345\217\213\346\217\220\344\272\244/\347\254\25414\351\242\230/F.v.S..cpp" @@ -0,0 +1,14 @@ +#include + +namespace ss { + int a = 0; +} + +int main() { + extern int _ZN2ss1aE; +#ifdef _MSC_VER +#pragma comment(linker, "/alternatename:?_ZN2ss1aE@@3HA=?a@ss@@3HA") +#endif + _ZN2ss1aE = 100; + std::cout << ss::a << '\n'; +}