【发布时间】:2016-06-21 14:26:05
【问题描述】:
我正在尝试在 Qt Creator 3.0.1 版中运行一个程序,该程序使用 Qt 4.8.6 在 64 位版本的 Ubuntu 14.04 上编译。我搜索了与该主题相关的其他帖子,很可能是 32 位和 64 位可执行文件之间存在冲突。然而,令我惊讶的是,该程序在两个小时前在完全相同的环境中运行良好,没有任何问题。
返回的错误是:
Failed to start program. Path or permissions wrong?
再次,我知道 32 位和 64 位的东西可能存在问题。我用 ldd 检查了可执行文件,我得到了:
not a dynamic executable
这告诉我可执行文件无法运行。但我仍然不知道为什么,因为正如我所说,我在两个小时前运行了该程序,并且运行良好。
【问题讨论】:
-
知道发生了什么变化吗?您是尝试通过 QtCreator(例如 ctrl+r)运行程序,还是单独从终端命令行
./myProgram运行程序?你可以使用file命令告诉你文件是32位还是64位... -
我真的不知道发生了什么变化。我一直在玩 sudo apt-get 以确保一切正常,所以可能那里发生了一些事情。
-
你能在你的可执行文件上运行
file命令吗?您应该得到一些输出,例如:$ file program(程序是您的可执行文件),然后:program: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), stripped(将该示例从 wiki 中删除。否则,如果它是安装问题 - 可能更难跟踪,但可能值得编译/build 在不同的 PC 上,或者更简单的干净的 ubuntu virtualbox,从头开始设置只需要几个小时...... -
同样值得转到您的可执行文件并从命令行/终端(不在 QtCreator 中)手动运行它,例如:
cd /path/to/my/executable/然后./program。如果没有运行,请检查(在同一文件夹中)ls -l的权限并报告。该文件应该具有执行权限...如果它具有权限,则执行chmod 777 program以赋予它完全权限+可执行文件。