编译没有问题。在工程目录下,打开命令行用xmake run命令可以运行程序。
但是在edx里运行或调试时,报“应用程序无法正常启动(0xc000007b)”错误的对话框。
Win7 64位系统,gcc10编译器,是一个win32 console项目。工程输出的可执行目录下已经放置了所有(当然是个人认为的)需要的库。
这跟什么有关,没有头绪。
相同的工具链,在edx里新建一个hello world的console项目,可以运行和调试。
大概率就是gcc那一堆库的问题了,edx整合包里有个命令行工具ldd.exe可以用来看依赖的动态库。
你在EDX中打开命令行就可以直接用。
另外,你依赖的动态库可能还有其它的依赖库,所有的库都要是可见的才行。
ldd -R 可以递归查看所有的依赖关系
用ldd工具和这个Dependencies工具查看了所有的依赖库,都放到同一目录还是不行。
相同的工程用qtcreator+cmake就可以运行和调试。
你在EDX中用CMake也不能运行,调试么?
你需要用dependencies确认一下,是否有动态库的符号加载有问题(它会标红,也有输出日志)
因为GCC发行版本不同,会存在动态库名相同,但导出的符号不同的情况
EDX在运行程序时,会把编译器相关目录放到PATH环境中。除此之外,并不会做其它影响程序加载的动作。
在EDX的工程面板中,在生成目标下找到你的程序,右键打开命令行,通过echo %PATH%可以查看当前的路径。
如果你把所有相关动态库放到了程序目录下了,那此时应该可以直接在此目录下通过命令行运行。
仅有一种情况,在用multi arch版本的gcc时,当程序规模达到一定程度后,编译出来的程序有BUG,会出现这个错误。
但这种情况下,无论如何程序都运行不了的。和你的情况不一样。
如果想省事,可以考虑链接静态库。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
登录 后才可以发表评论