visual studio编译Debug_X64程序出现0xc000007b错误:
- 此错误原因是x64应用程序使用了32位DLL,排查使用的每个DLL都没找到异常,最后发现windeployqt将QT相关dll同步到执行目录即可;
- debug编译方式,报错并非找不到QT相关DLL而是直接报0xc000007b错误;
- 类似错误也只好列举所有需要使用的DLL并写测试用例逐步排除;
error LNK1112错误: 模块计算机类型“x64”与目标计算机类型“X86”冲突
- 项目=>属性=>配置,选择或新建x64平台
- 项目=>属性=>链接器=>高级=>目标计算机,选择MachineX64(/MACHINE:X64)
- 项目=>属性=>链接器=>命令行=>其它选项,里面如果有类似x86的内容,删除掉。
error MSB3073: :VCEnd”已退出,代码为 1 error MSB3073: :copy.…
- 选中工程右—>属性—>配置属性—>生成事件—>后期生成事件—>在生成中使用先置为否,编译工程,通过后在置为是
error LNK2001: unresolved external symbol memset
- 编译工程一般报错都会指出具体的错误,错误文件,错误行数;但是偶尔你会发现,有的是链接错误。
例如,同样的一套code,debug模式可以正常编译,release模式就报错了,报错是在一个obj文件中,
错误类型是: error LNK2001: unresolved external symbol memset
问题原因:debug模式,编译器不会对代码进行优化;release模式,编译器会对代码进行优化
解决方法:添加编译参数 -od(对部分代码禁止优化),具体如下:
MSFT:*_*_IA32_CC_FLAGS = /GL - /Od
MSFT:*_*_X64_CC_FLAGS = /GL - /Od
原文链接:https://blog.csdn.net/wmx1992/article/details/79733384
visual studio 2017 应用程序无法正常启动(0xc000007b)
原因:x64程序误用x86dll;
排查步骤:
使用visual studio开发工具命令dumpbin:dumpbin /headers *.dll |find "machine"
发现exe所在目录确实包含了x86dll,逐一排查确认是x64程序使用的x86QT库,使用windeployqt重新关联即可;