我有一個共享庫,它應該只導出一個功能,標記爲__attribute__ ((visibility ("default")))
。它也與其他靜態庫(FFTW)相連,並mingw -fvisibility =隱藏似乎並不工作
#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是否支持可見性標誌?如果是的話,我如何擺脫共享庫中所有不必要的東西?