Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Clang什么时候为共享对象添加了可见性支持?_C++_Clang_Visibility - Fatal编程技术网

C++ Clang什么时候为共享对象添加了可见性支持?

C++ Clang什么时候为共享对象添加了可见性支持?,c++,clang,visibility,C++,Clang,Visibility,GCC在版本4.0中添加。我的产品中包含以下内容,可将共享对象的大小减少约1/3(1.5 MB): 我想为叮当声添加一个类似的规则。Clang什么时候增加了可视性支持?它一直可用吗?确认它在3.3+中。我没有测试任何较低版本,但我愿意打赌它是存在的,并且一直存在。我已经测试了3.3、3.4、3.5、3.6和3.7 有关其他“新”属性的列表(适用于3.7),请参阅: 如您所见,变量“a”在第一张图片中导出,但在第二张图片中,我隐藏了它,它不再在符号表中。我继续隐藏最后一张图片中的函数,它们也不在

GCC在版本4.0中添加。我的产品中包含以下内容,可将共享对象的大小减少约1/3(1.5 MB):


我想为叮当声添加一个类似的规则。Clang什么时候增加了可视性支持?它一直可用吗?

确认它在3.3+中。我没有测试任何较低版本,但我愿意打赌它是存在的,并且一直存在。我已经测试了3.3、3.4、3.5、3.6和3.7

有关其他“新”属性的列表(适用于3.7),请参阅:

如您所见,变量“a”在第一张图片中导出,但在第二张图片中,我隐藏了它,它不再在符号表中。我继续隐藏最后一张图片中的函数,它们也不在符号表中

我认为这是一个信号,它的工作。在LinuxMintRebecca上测试,没有安装gcc、g++或mingw或其他任何东西。只有代码块、叮当声和llvm。在构建clang之后,我卸载了gcc和g++(以避免冲突和问题(我怀疑这会发生,但我很学究)

注意:我试图定义隐藏属性,但是没有

对于喜欢文本输出的用户:

kira@Kira ~/Desktop/shm/bin/Debug $ nm -gC liblibshm.so

0000000000200980 B __bss_start
                 w __cxa_finalize@@GLIBC_2.2.5
0000000000200980 D _edata
0000000000200988 B _end
0000000000000628 T _fini
                 w __gmon_start__
00000000000004b0 T _init
                 w _ITM_deregisterTMCloneTable
                 w _ITM_registerTMCloneTable
                 w _Jv_RegisterClasses

kira@Kira ~/Desktop/shm/bin/Debug $ clang++ --version

Ubuntu clang version 3.3-16ubuntu1 (branches/release_33) (based on LLVM 3.3)
Target: x86_64-pc-linux-gnu
Thread model: posix

kira@Kira ~/Desktop/shm/bin/Debug $ 

我不确定确切的时间,但我想它可能是在3.6或3.7中添加的。。我找不到“可见性”,但我找到了3.7的属性列表:不需要显示图片(很难阅读)。您可以显示纯文本,因为GCC和Clang都是命令行编译器。。很抱歉我将删除一些图片并添加一些文本输出。
kira@Kira ~/Desktop/shm/bin/Debug $ nm -gC liblibshm.so

0000000000200980 B __bss_start
                 w __cxa_finalize@@GLIBC_2.2.5
0000000000200980 D _edata
0000000000200988 B _end
0000000000000628 T _fini
                 w __gmon_start__
00000000000004b0 T _init
                 w _ITM_deregisterTMCloneTable
                 w _ITM_registerTMCloneTable
                 w _Jv_RegisterClasses

kira@Kira ~/Desktop/shm/bin/Debug $ clang++ --version

Ubuntu clang version 3.3-16ubuntu1 (branches/release_33) (based on LLVM 3.3)
Target: x86_64-pc-linux-gnu
Thread model: posix

kira@Kira ~/Desktop/shm/bin/Debug $