связывание DLL не связывает в файлах .lib и ожидает, что другие. DLL форме - PullRequest
0 голосов
/ 26 сентября 2019

Я пытаюсь построить расширение Python C для Windows с помощью msvc (используя distutils), который связывает некоторые другие статические библиотеки.

В основном у меня есть test1.lib, test2.lib и test3.obj иЯ хочу собрать test4.dll, в котором есть test1.lib, test2.lib и test3.obj, связанные между собой.

Я проверил сгенерированную dll с помощью depen.exe, и она ожидает test1.dll и test2.dll.

Любые идеи о том, как сказать msvc, чтобы правильно связать файлы?

Вот фактическая команда сборки:

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\link.exe /nologo /INCREMENTAL:NO /LTCG /DLL /MANIFEST:EMBED,ID=2 /MANIFESTUAC:NO /LIBPATH:C:\app\backend\opc_ua\ua_sd
k\lib /LIBPATH:C:\app\backend\opc_ua\ua_sdk\third-party\win64\vs2015\libxml2\out32dll /LIBPATH:C:\app\backend\opc_ua\ua_sdk\third-party\win64\vs2015\openssl\out32dll /LIBPATH:C:\Pyth
on-3.7.2-amd64\libs /LIBPATH:C:\Python-3.7.2-amd64\PCbuild\amd64 "/LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\LIB\amd64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\
lib\10.0.10240.0\ucrt\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x64" ws2_32.lib advapi32.lib uamodule.lib coremodule.lib uapkicpp.lib uabasecpp.lib xmlparsercpp.l
ib uastack.lib libxml2.lib libssl.lib libcrypto.lib mpr.lib kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib /EXPORT:PyInit_opcua
build\temp.win-amd64-3.7\Release\uniauto_cpp\opcuamodule.obj build\temp.win-amd64-3.7\Release\uniauto_cpp\NodeManager.obj build\temp.win-amd64-3.7\Release\uniauto_cpp\opcserver.obj
 build\temp.win-amd64-3.7\Release\uniauto_cpp\uamodeler_output\instancefactory_.obj build\temp.win-amd64-3.7\Release\uniauto_cpp\uamodeler_output\nodemanager.obj build\
temp.win-amd64-3.7\Release\uniauto_cpp\uamodeler_output\nodemanagerbase.obj /OUT:build\lib.win-amd64-3.7\opcua.cp37-win_amd64.pyd /IMPLIB:build\temp.win-amd64-3.7\Release\uni
auto_cpp\opcua.cp37-win_amd64.lib

И зависит ..exe говорит выводфайл зависит от uastack.dll, libxml2.dll, libcrypto.dll, если они четко перечислены в их формате .lib.

...