6 Star 51 Fork 6

scu319hy / EDX 高性能可扩展编辑器

 / 详情

xmake项目无法运行和调试

待办的
创建于  
2024-01-24 17:26

编译没有问题。在工程目录下,打开命令行用xmake run命令可以运行程序。
但是在edx里运行或调试时,报“应用程序无法正常启动(0xc000007b)”错误的对话框。
Win7 64位系统,gcc10编译器,是一个win32 console项目。工程输出的可执行目录下已经放置了所有(当然是个人认为的)需要的库。
这跟什么有关,没有头绪。
相同的工具链,在edx里新建一个hello world的console项目,可以运行和调试。

评论 (3)

wzhy 创建了任务

大概率就是gcc那一堆库的问题了,edx整合包里有个命令行工具ldd.exe可以用来看依赖的动态库。
你在EDX中打开命令行就可以直接用。
另外,你依赖的动态库可能还有其它的依赖库,所有的库都要是可见的才行。
ldd -R 可以递归查看所有的依赖关系

用ldd工具和这个Dependencies工具查看了所有的依赖库,都放到同一目录还是不行。
相同的工程用qtcreator+cmake就可以运行和调试。

你在EDX中用CMake也不能运行,调试么?
你需要用dependencies确认一下,是否有动态库的符号加载有问题(它会标红,也有输出日志)
因为GCC发行版本不同,会存在动态库名相同,但导出的符号不同的情况
EDX在运行程序时,会把编译器相关目录放到PATH环境中。除此之外,并不会做其它影响程序加载的动作。
在EDX的工程面板中,在生成目标下找到你的程序,右键打开命令行,通过echo %PATH%可以查看当前的路径。
如果你把所有相关动态库放到了程序目录下了,那此时应该可以直接在此目录下通过命令行运行。

仅有一种情况,在用multi arch版本的gcc时,当程序规模达到一定程度后,编译出来的程序有BUG,会出现这个错误。
但这种情况下,无论如何程序都运行不了的。和你的情况不一样。

如果想省事,可以考虑链接静态库。 :smile:

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(2)
6507262 scu319hy 1705329405 5660526 willwzhy 1613318647
1
https://gitee.com/scu319hy/edx.git
git@gitee.com:scu319hy/edx.git
scu319hy
edx
EDX 高性能可扩展编辑器

搜索帮助