• 2791阅读
  • 13回复

[提问]可执行文件只能使用sudo执行,否则会出现段错误 [复制链接]

上一主题 下一主题
 

只看楼主 倒序阅读 楼主  发表于: 2020-03-23
求助:在装有qt开发环境的电脑上,可执行文件可以正常运行,在没有开发环境的电脑,只能通过sudo运行,否则就会报段错误。而同事编译的可执行文件不需要通过sudo,可以直接运行。请问是为什么?
离线uidab

只看该作者 1楼 发表于: 2020-03-23
比较两个文件权限,
有时候为了工作直接获得答案,而我却失去了思考的乐趣!


飘啊飘,何时能安居!

只看该作者 2楼 发表于: 2020-03-23
回 uidab 的帖子
uidab:比较两个文件权限, (2020-03-23 17:19) 

两个权限都是777。
离线uidab

只看该作者 3楼 发表于: 2020-03-24
猜测还是程序问题, 通过sudo运行不起来,一般不会是段错误. 只能提示你没有权限. 但你这里是段错误. 没有代码,没法分析.

建议你新建个项目试试.
有时候为了工作直接获得答案,而我却失去了思考的乐趣!


飘啊飘,何时能安居!

只看该作者 4楼 发表于: 2020-03-24
回 uidab 的帖子
uidab:猜测还是程序问题, 通过sudo运行不起来,一般不会是段错误. 只能提示你没有权限. 但你这里是段错误. 没有代码,没法分析.
建议你新建个项目试试. (2020-03-24 07:44) 

好的,谢谢,我新建了工程是可以的,主要是之前的程序1、我同事编译的没有qt开发环境也可以用。2、我编译的只有在有环境的,或者使用sudo才可以运行。否则就会报段错误。代码主要就是界面切换和一个多线程串口通信。我试了把多线程关了也不行。
离线uidab

只看该作者 5楼 发表于: 2020-03-24
回 我们真的无聊 的帖子
我们真的无聊:好的,谢谢,我新建了工程是可以的,主要是之前的程序1、我同事编译的没有qt开发环境也可以用。2、我编译的只有在有环境的,或者使用sudo才可以运行。否则就会报段错误。代码主要就是界面切换和一个多线程串口通信。我试了把多线程关了也不行。 (2020-03-24 10:55) 

你有依赖其他库?
看看这些库的权限
有时候为了工作直接获得答案,而我却失去了思考的乐趣!


飘啊飘,何时能安居!
在线fsu0413

只看该作者 6楼 发表于: 2020-03-24
QObject的子类不能再静态区初始化

只看该作者 7楼 发表于: 2020-03-24
回 uidab 的帖子
uidab:你有依赖其他库?
看看这些库的权限 (2020-03-24 11:04) 

   只用了 serial_port_cpp/posix_qextserialport.cpp \, serial_port_cpp/qextserialbase.cpp \,我刚才试了把串口去掉了还是不行。

只看该作者 8楼 发表于: 2020-03-24
回 fsu0413 的帖子
fsu0413:QObject的子类不能再静态区初始化 (2020-03-24 12:07) 

我看了一下应该没有
离线uidab

只看该作者 9楼 发表于: 2020-03-24
回 我们真的无聊 的帖子
我们真的无聊:   只用了 serial_port_cpp/posix_qextserialport.cpp \, serial_port_cpp/qextserialbase.cpp \,我刚才试了把串口去掉了还是不行。 (2020-03-24 13:32) 

如果是用源代码,应该不是我说的. 建议加上log文件,看看哪里出的问题.或者查看liunx的日志
有时候为了工作直接获得答案,而我却失去了思考的乐趣!


飘啊飘,何时能安居!

只看该作者 10楼 发表于: 2020-03-25
回 uidab 的帖子
uidab:如果是用源代码,应该不是我说的. 建议加上log文件,看看哪里出的问题.或者查看liunx的日志
 (2020-03-24 14:52) 

你好,我昨天调试了看,是执行到exec(),报的错。
在线fsu0413

只看该作者 11楼 发表于: 2020-03-26
回 我们真的无聊 的帖子
我们真的无聊:你好,我昨天调试了看,是执行到exec(),报的错。 (2020-03-25 09:52) 

exec之前有什么操作?是不是动用了在一般情况下无法访问的资源?

只看该作者 12楼 发表于: 2020-04-10
没有找到根本原因,但是程序应该是没问题的,换了ubuntu kylin 18之后,就可以正常编译,用的环境什么的都一样的。
在线fsu0413

只看该作者 13楼 发表于: 2020-04-21
会不会是 程序里使用了某些文件,一般用户没有权限
快速回复
限100 字节
 
上一个 下一个