Компиляция динамически связанной библиотеки - PullRequest
3 голосов
/ 15 апреля 2011

В настоящее время я пытаюсь скомпилировать динамически связанную библиотеку (для системы плагинов), используя Windows и MinGW.

Я компилирую каждый объект, используя эту командную строку:

mingw-g++ -fPIC test.cpp

Ибиблиотека, использующая эту строку:

mingw-g++ -rdynamic -shared -Wl,-soname,test.so.1 -o test.so test.o

Она вообще не работает (при использовании GCC с Linux работает похожая строка): fPIC и rdynamic по некоторым причинам игнорируются.И при попытке создать библиотеку она терпит неудачу, потому что компилятор пытается связать ее с объектами, которые должны быть разрешены, поскольку я динамически связываю ее с основным двоичным файлом.

Так как же вы компилируете это с помощью MinGW?

Спасибо :)!

1 Ответ

5 голосов
/ 15 апреля 2011

-fPIC и -rdynamic игнорируются, поскольку они не используются в Windows.

Кроме того, .so не является правильным выходным расширением для библиотек в Windows.

Чтобы сделатьОбщая библиотека для / на окнах с GCC:

mingw-g++ -c file.cpp -o file.o
mingw-g++ -shared -Wl,--out-implib,libfile.a -o file.dll file.o 

Не больше, не меньше.

И документация всегда приятно иметь: http://www.mingw.org/wiki/sampleDLL

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...