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