Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Chinese
  4. QTCreator程序异常结束的奇怪问题
Forum Updated to NodeBB v4.3 + New Features

QTCreator程序异常结束的奇怪问题

Scheduled Pinned Locked Moved Unsolved Chinese
2 Posts 2 Posters 1.6k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • W Offline
    W Offline
    wangish
    wrote on last edited by
    #1

    关于"程序异常退出"的奇怪现象,求教论坛里的大神。
    我有一个基于QT的简单应用。使用环境是:x64平台下UBUNTU20.04+QT5.14.2,QTCREATOR的版本是4.1,g++版本是9.4.0
    同时,我会使用一个我自己做的外部库,这个库是在vs2019下做的,通过ssh直接在上述ubuntu平台上远程编译。也就是说,库的编译环境和QT是同一个。
    好了,接下来说问题。开始时,设计QT,debug一切正常。当我使用外部库里的类时,写了初始化这个类程序后。再次编译是正常的,但一旦debug就提示“程序异常结束”。我也上网搜索了一些方法,但是都没有效果。
    神奇的事情是,我逐一断点后,发现只要我将main 程序里Qapplication a(argc,argv); JetDemoWindow w;w.show();w.show();这四句进行注释,我对外部库里函数或者变量的任何使用都没有任何问题,debug输出都很正常。也就是说,一旦屏蔽了QT窗体打开的程序,外部库就可以正常使用。如果要打开QT窗体,外部库中先关的内容必须都注释掉才能正常运行程序。否则都会提示“程序异常结束”。
    之后,我干脆开了一个新的qtwidgt程序,窗体里什么也不写,发现了和刚才说的一样的现象。即外部库和窗体只能实现其中的一个,否则必报“程序异常结束”的错误。
    我应该从哪里入手查问题呢?

    1 Reply Last reply
    0
    • W Offline
      W Offline
      wangish
      wrote on last edited by
      #2

      问题已解决。
      最后发现还是在某一个类里,cpp里定义了全局变量 int x =0;
      将其转移到h文件里,static int x; 然后在cpp里初始化 int 类名::x = 0;再次编译就没问题了。

      1 Reply Last reply
      0

      • Login

      • Login or register to search.
      • First post
        Last post
      0
      • Categories
      • Recent
      • Tags
      • Popular
      • Users
      • Groups
      • Search
      • Get Qt Extensions
      • Unsolved