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 (将#修改为@)