【发布时间】:2011-11-03 11:54:37
【问题描述】:
我有一个共享库,它应该只导出一个标有__attribute__ ((visibility ("default"))) 的函数。它还与另一个静态库 (fftw) 链接,并且
#include<fftw3.h>
前面有:
#pragma GCC visibility push(hidden)
使用的链接器命令:
g++.exe -fvisibility=hidden -shared -o mylib.dll -Wl,--out-implib,mylib.dll.a -Wl,--no-whole-archive libfftw3.a libfftw3_omp.a -lgomp
现在生成的库很大,如果我检查导出的函数,它包括所有 fftw 函数和我文件中的所有函数。看起来 mingw 忽略了可见性选项。我读到之前它给出了关于-fvisibility 的警告,但现在它编译时没有任何警告。
mingw 和 gcc 4.6.1 是否支持可见性标志?如果是,我该如何清除共享库中所有不必要的内容?
【问题讨论】:
标签: shared-libraries mingw visibility