سلام.در گام اول باید .def فایل ایجاد کنید که به راحتی می تونید با استفاده از برنامه dumpbin اینکارو انجام بدید dumpbin با اجرای vs command در اختیارتون هست.
به صورت زیر:
dumpbin /exports my_lib.dll > my_lib.def
اطلاعات مربوط به امضاء توابع در فایل my_lib.def ذخیره شده فقط بخش نام توابع را نگه دارید و مابقی را پاک کنید در نهایت یک خط با محتوی EXPORTS به ابتدای فایل اضافه کنید.
به طور مثال :
قبل از عمل :
ordinal hint RVA name
1 0 028D4AB8 ?DEVICE_CPU@tensorflow@@3QEBDEB
2 1 028D4AC0 ?DEVICE_GPU@tensorflow@@3QEBDEB
3 2 028D4AC8 ?DEVICE_SYCL@tensorflow@@3QEBDEB
4 3 028E1380 ?kDatasetGraphKey@GraphDatasetBase@tensorflow@@2QBDB
5 4 028E1390 ?kDatasetGraphOutputNodeKey@GraphDatasetBase@tensorflow@@2QBDB
6 5 03242488 ?tracing_engine_@Tracing@port@tensorflow@@0U?$atomic@PEAVEngine@Tracing@port@tensorflow@@@std@@A
7 6 001996C0 TFE_ContextAddFunction
8 7 00199710 TFE_ContextAddFunctionDef
9 8 001997D0 TFE_ContextAsyncClearError
10 9 001997E0 TFE_ContextAsyncWait
11 A 00199830 TFE_ContextClearCaches
...
بعد از عمل :
EXPORTS
?DEVICE_CPU@tensorflow@@3QEBDEB
?DEVICE_GPU@tensorflow@@3QEBDEB
?DEVICE_SYCL@tensorflow@@3QEBDEB
?kDatasetGraphKey@GraphDatasetBase@tensorflow@@2QBDB
?kDatasetGraphOutputNodeKey@GraphDatasetBase@tensorflow@@2QBDB
?tracing_engine_@Tracing@port@tensorflow@@0U?$atomic@PEAVEngine@Tracing@port@tensorflow@@@std@@A
TFE_ContextAddFunction
TFE_ContextAddFunctionDef
TFE_ContextAsyncClearError
TFE_ContextAsyncWait
TFE_ContextClearCaches
...
در گام دوم با استفاده از برنامه lib که در همن vs command قرار داره با استفاده از فایل .def فایل .lib را برای ما ایجاد می کنه به صورت زیر:
lib /def:my_lib.def /OUT:my_lib.lib /MACHINE:X64
برای کتابخانه های 32 بیتی هم می تونید از فلگ /MACHINE:X86 استفاده کنید.