我有一个共享库,它只应该导出一个被标记为__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是否支持可见性标志?如果是,我该如何去掉共享库中所有不必要的东西?