关于使用qmake编译qt程序的问题

[复制链接]
查看11 | 回复5 | 2021-1-27 06:27:17 | 显示全部楼层 |阅读模式
工作环境:ubuntu14.04
Qt版本:5.2.1
问题描述:
本人在使用qtcreator编译运行程序的时候,不会产生任何问题。不过我希望生成一个可执行文件。于是我在该工程目录下qmake-project,然后qmakexxx.pro,之后make得到一个可执行文件(不知道这个过程对不对)。然后执行这个可执行文件时,总会报段错误(核心已转储)。我的代码用qtcreator已经编译执行通过了,所以现在不知道是哪里的问题。请各位大神赐教如何用命令行生成可执行的qt程序。在此谢过。第一次提问,下面这个系统推荐邀请不知道怎么玩,先都点上吧,如果打扰了再次道个歉。
分 -->
回复

使用道具 举报

千问 | 2021-1-27 06:27:17 | 显示全部楼层
忘记贴图了,这是执行产生错误的截图。


回复

使用道具 举报

千问 | 2021-1-27 06:27:17 | 显示全部楼层
引用1楼Bumble_Bee的回复:忘记贴图了,这是执行产生错误的截图。



段错误。
你检查一下程序里那里有内存越界了,或者访问了不可用的资源。这个编译器不一定检查得出来。
回复

使用道具 举报

千问 | 2021-1-27 06:27:17 | 显示全部楼层
引用2楼a30037338的回复:Quote: 引用1楼Bumble_Bee的回复:
忘记贴图了,这是执行产生错误的截图。



段错误。
你检查一下程序里那里有内存越界了,或者访问了不可用的资源。这个编译器不一定检查得出来。

但是我用集成环境是可以成功执行的呀。这是我程序的代码
#include
#include
intmain(intargc,char*argv[])
{
//创建QApplication对象,用来管理整个程序用到的资源
QApplicationapp(argc,argv);
//创建一个窗口部件,用来显示“HelloQt”,此处为HTML样式格式
QLabel*label=newQLabel("Hello"
"Qt!");
//使label标签可见。这里先对label进行设置然后才使其可见,目的是避免窗口部件摄制过程中的闪烁现象。
label->show();
//将程序控制权交给Qt,程序进入时间循环状态,这是一种等待模式,程序等待用户的操作
returnapp.exec();
}
是不是主函数的参数问题?说实话这个参数我不知道该怎么填,不过qtcreator可以帮我执行成功
回复

使用道具 举报

千问 | 2021-1-27 06:27:17 | 显示全部楼层
你用root权限试一下
回复

使用道具 举报

千问 | 2021-1-27 06:27:17 | 显示全部楼层

检查你的运行环境中的动态链接库和编译环境中的动态链接库是否相同。
readelf-d你的可执行文件
然后一个一个比对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行