Как экспортировать DLL или LIB в MinGW .a файл для правильной ссылки - PullRequest
0 голосов
/ 23 июня 2019

Я хочу использовать экспорт .a файла из DLL для связи программы C ++, полный архив, который я получил, был: заголовок, файл DLL и библиотека LIB, созданная VC ++.теперь я использую pexports и dlltool для экспорта функций DLL в библиотеку .a:

pexports some.dll -o > some.def
dlltool --dllname some.dll --def some.def --output-lib some.a

при связывании с some.a я получил ошибки от компилятора:

  [Linker error] undefined reference to `some_function@8' 

, поэтому я просматриваю некоторые.def-файл, который он определяет, как показано ниже:

LIBRARY "some.dll"
EXPORTS
some_function  @1
some_function2 @2

, и затем я решаю переключиться на другой способ экспорта .a-файла из .LIB-файла, созданного VC ++:

reimp some.lib
dlltool -d some.def -l libsome.a

изатем я получил ссылку правильно, используя libsome.a, потому что some.def определяет как:

LIBRARY "some.dll"
EXPORTS
some_function  @8  --> ( param size? )
some_function2 @24

, но когда я запустил программу, я получил ошибку времени выполнения: не могу найти адрес записи "some_function @ 8" для некоторых.dll ...

, почему результат экспорта .a из DLL-файла и из LIB-файла был другим?как мне решить проблему?спасибо.

...