Если у вас есть заголовок, единственное, что вам не хватает, - это архив A, который необходим компоновщику для выяснения того, что предоставляет DLL.
Измените это:
gcc f1.o f2.o f3.o -o test1.dll -shared
Для этого:
gcc f1.o f2.o f3.o -o test1.dll -shared -Wl,--out-implib,libtest1.a
Затем, чтобы связать с общей библиотекой, передайте -ltest1
в gcc
.
Вам все равно придется перекомпилировать библиотеку для каждой платформыи архитектура (x86, AMD64, IA64 и т. д.).Windows использует DLL, но Linux использует Shared Objects, например.
См. http://www.mingw.org/wiki/sampleDLL для получения дополнительной информации.