如何解决pyarmor .c 文件到 pyd/so - 找不到 obj 文件
msvc + python + pyarmor win10x64 / 底部更新编辑
我有一个使用这些命令制作的 pyarmor .c 文件:
subprocess.call(["pyarmor","obfuscate","--recursive","--no-cross-protection","--restrict","0","--output",obfuscatedDir,cleanDir + "runner.py"])
subprocess.call(["g:/venv/Scripts/python","g:/venv/Lib/site-packages/pyarmor/helper/buildext.py","-i",cleanDir + "runner.py])
然后我使用这个命令制作了 .obj 文件 >
subprocess.call([
"C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.27.29110/bin/HostX86/x64/cl.exe","/c","/nologo","/Ox","/W3","/GL","/DNDEBUG","/MD","-IC:/Program Files/Python37/include","-IC:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.27.29110/ATLMFC/include","-IC:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.27.29110/include","-IC:/Program Files (x86)/Windows Kits/10/include/10.0.18362.0/ucrt","-IC:/Program Files (x86)/Windows Kits/10/include/10.0.18362.0/shared","-IC:/Program Files (x86)/Windows Kits/10/include/10.0.18362.0/um","-IC:/Program Files (x86)/Windows Kits/10/include/10.0.18362.0/winrt","-IC:/Program Files (x86)/Windows Kits/10/include/10.0.18362.0/cppwinrt","/Tc" + cleanDir + "runner.c","/Fo" + cleanDir + "runner.obj"
])
现在我正在尝试将其全部链接起来并使用 >
制作 pyd/lib/so/etc subprocess.call([
"C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.27.29110/bin/HostX86/x64/link.exe","/INCREMENTAL","NO","/LTCG","/DLL","/MANIFEST","EMBED,ID=2","/MANIFESTUAC","/LIBPATH","g:/venv/libs","C:/Program Files/Python37/libs","C:/Program Files/Python37","g:/venv/PCbuild/amd64","C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.27.29110/ATLMFC/lib/x64","C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.27.29110/lib/x64","C:/Program Files (x86)/Windows Kits/10/lib/10.0.18362.0/ucrt/x64","C:/Program Files (x86)/Windows Kits/10/lib/10.0.18362.0/um/x64","/EXPORT:PyInit_runner "+ cleanDir + "runner.obj","/OUT:" + cleanDir + "runner.pyd","/IMPLIB:" + cleanDir + "runner.lib"
])
但我一直在得到>
LINK : warning LNK4075: ignoring '/INCREMENTAL' due to '/LTCG' specification
LINK : fatal error LNK1181: cannot open input file 'NO.obj'
我在这里不知所措...我尝试在链接之前运行它>
subprocess.call(["C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Auxiliary/Build/vcvarsall.bat","x86_amd64"])
但没有运气...
我在这里做错了什么?
提前致谢
编辑
我已经对“链接”部分进行了排序...我的选项是错误的...这里是正确的 >
subprocess.call([
"C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.27.29110/bin/HostX86/x64/link.exe","/NOLOGO","/INCREMENTAL:NO","/MANIFEST:EMBED,"/MANIFESTUAC:NO",#"/MACHINE:X64","/LIBPATH:C:/Program Files/Python37/libs","/LIBPATH:C:/Program Files/Python37","/LIBPATH:C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.27.29110/ATLMFC/lib/x64","/LIBPATH:C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.27.29110/lib/x64","/LIBPATH:C:/Program Files (x86)/Windows Kits/10/lib/10.0.18362.0/ucrt/x64","/LIBPATH:C:/Program Files (x86)/Windows Kits/10/lib/10.0.18362.0/um/x64","/IMPLIB:" + cleanDir + "runner.lib"
])
我现在得到的错误是>
LINK : warning LNK4001: no object files specified; libraries used
LINK : warning LNK4068: /MACHINE not specified; defaulting to X86
Creating library S:/BUILD/icManager_armored/runner.lib and object S://BUILD/icManager_armored/runner.exp
LINK : error LNK2001: unresolved external symbol __DllMainCRTStartup@12
runner.exp : error LNK2001: unresolved external symbol _PyInit_runner S:/BUILD/icManager_armored/runner.obj
S:\BUILD\icManager_armored\runner.pyd : fatal error LNK1120: 2 unresolved externals
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。