错误:无法找到“XXX.exe”的调试信息,或者调试信息不匹配。未使用调试信息生成二进制文件。

 都说建立项目的时候不应建立空项目,而应当建立一个控制台应用程序。这样确实可以解决问题,但是为什么在空项目下无法调试呢,怎样来解决这个问题?并没有人写到。

       其实问题在于,在空项目中不生成调试文件pdb,所以无法调试。要让项目生成pdb文件,需要更改:
(1)项目属性→配置属性→链接器从→调试→生成调试信息→将“否”改为“是(/DEBUG)”。
       但这样还是不够的,还需要更改:
(2)项目属性→配置属性→C/C++→调试信息格式→将“禁用”改为“用于编辑并继续的程序数据库(/ZI)”。
(3)项目属性→配置属性→C/C++→优化→优化→将“最大化速度(/O2)”改为“禁用(/Od)”。
因为为了生成这个文件,需要设定debug信息的格式并关掉O2,还要更改linker生成调试信息的开关。

### 回答1: 在Linux中,当我们执行一个二进制文件时,出现"bash: ./xxx: 无法执行二进制文件"的报错信息通常有以下几个原因: 1. 二进制文件没有可执行权限:在执行二进制文件之前,我们需要给予该文件可执行权限。可以使用chmod命令来更改文件权限,例如:chmod +x xxx,其中xxx文件名。 2. 文件不是在当前系统架构下编译的:Linux系统中有多种架构,如x86、x86_64、ARM等,如果用错误的架构编译的二进制文件在当前系统上是无法执行的。我们可以使用"file xxx"命令查看文件的架构信息,确保文件与当前系统的架构一致。 3. 缺少依赖库或者库版本不匹配:有时候,二进制文件需要依赖某些库来执行,如果缺少了相关的库,就会出现无法执行的问题。在这种情况下,需要安装相应的依赖库或者更新库的版本。 4. 文件可能已被损坏或者错误:如果文件被损坏或者错误地下载、复制或传输,那么可能导致无法执行。可以尝试重新下载、复制或传输文件。 总之,"bash: ./xxx: 无法执行二进制文件"的报错可能由于没有可执行权限、文件架构不匹配、缺少依赖库或者文件错误等原因造成。通过检查文件的权限、架构、依赖库以及文件的完整性,可以解决这个问题。 ### 回答2: 当在Linux系统中运行一个二进制文件时,如果出现错误提示“bash: ./xxx: 无法执行二进制文件”,通常有以下几个原因: 1. 没有执行权限:在Linux系统中,每个文件都有权限属性,包括可执行权限。如果文件没有可执行权限,即使是二进制文件,也无法执行。解决办法是使用chmod命令给文件添加可执行权限。例如,使用命令chmod +x xxx文件xxx添加可执行权限。 2. 文件不是二进制文件文件损坏:该错误提示也可能表示文件不是二进制文件,或者文件损坏。可以通过file命令检查文件类型。例如,使用命令file xxx检查文件xxx的类型。如果确定文件损坏,需要重新下载或替换文件。 3. 文件缺少运行时依赖:有些二进制文件在运行时依赖于其他库文件或依赖项。如果缺少所需的依赖库,会导致无法执行二进制文件。解决办法是安装所需的依赖库。可以使用Linux发行版的包管理器,如apt-get、yum等来安装所需的库文件。 4. 文件系统不支持执行:某些文件系统支持可执行位,但某些文件系统可能不支持。如果二进制文件所在的文件系统不支持执行,则无法执行二进制文件。在挂载文件系统时,需要在挂载选项中指定可执行权限,例如使用exec选项。 总结起来,当Linux系统报错“bash: ./xxx: 无法执行二进制文件”时,可能的原因是文件没有执行权限、文件不是二进制文件文件损坏、文件缺少运行时依赖、文件系统不支持执行等。针对不同的原因,可以通过给文件添加执行权限、替换文件、安装依赖库、使用支持执行的文件系统等方式解决问题。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值