mingw -fvisibility = hidden не работает

У меня есть общая библиотека, которая должна экспортировать только одну функцию, отмеченную __ 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 флаги видимости? Если да, как мне избавиться от всего ненужного в моей общей библиотеке?

5
задан greatwolf 19 October 2014 в 04:19
поделиться