Я хочу использовать экспорт .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-файла был другим?как мне решить проблему?спасибо.