在OSX的Clang上使用别名

Wes*_*and 5 c macos clang

我正在努力使一些代码可以在OSX上进行编译,而OSX早已专注于Linux。其中一件涉及使用看起来不太翻译的变量别名:

extern type1_t var_name __attribute__((alias("var_name_")));
extern type2_t var_name2[SIZE_MACRO] __attribute__((alias("var_name2_")));
Run Code Online (Sandbox Code Playgroud)

当我在Mac上使用进行编译时Apple LLVM version 7.3.0 (clang-703.0.29),得到以下输出:

filename.c:81:66: error: only weak aliases are supported on darwin
extern type1_t var_name __attribute__((alias("var_name_")));
                                       ^
filename.c:82:92: error: only weak aliases are supported on darwin
extern type2_t var_name2[SIZE_MACRO] __attribute__((alias("var_name2_")));
                                                    ^
Run Code Online (Sandbox Code Playgroud)

因此,我认为我需要通过添加weak,定义来制作这些弱符号,但是得到的结果是相同的:

filename.c:81:66: error: only weak aliases are supported on darwin
extern type1_t var_name __attribute__((weak,alias("var_name_")));
                                       ^
filename.c:82:92: error: only weak aliases are supported on darwin
extern type2_t var_name2[SIZE_MACRO] __attribute__((weak,alias("var_name2_")));
                                                    ^
Run Code Online (Sandbox Code Playgroud)

根据网络上的研究,如果我转到GCC,这将为解决此特定问题做好准备,但是我需要这样做,以便能够在包括Clang在内的所有编译器上针对Mac进行干净地编译。我需要在这里做什么才能完成这项工作?