Я портирую набор программ с linux на Windows + Cygwin. Основная разделяемая библиотека набора относится к нескольким постоянным внешним символам, объявленным в программах, использующих разделяемую библиотеку. Я не нашел способ сделать то же самое с Cygwin. Жалобы на неразрешенные символы при создании общей библиотеки. Опция --allow-shlib-undefined не поддерживается в Windows + Cygwin?
Пример:
mydll. c
#include <stdio.h>
extern const int a;
void f(void)
{
printf("%d\n", a);
}
myprog. c
const int a = 1;
extern void f(void);
int main(int argc, char** argv)
{
f();
}
Команда, используемая для построения dll:
gcc -shared -o libmydll.so -Xlinker --allow-shlib-undefined mydll.c