Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Chinese
  4. QTCreator程序异常结束的奇怪问题
Qt 6.12 LTS is out! See what's new in the release blog

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

Scheduled Pinned Locked Moved Unsolved Chinese
2 Posts 2 Posters 2.7k 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
      • Unsolved