当前位置:  技术问答>linux和unix

用gcc编译的程序没有执行权限

    来源: 互联网  发布时间:2017-04-10

    本文导语:  本帖最后由 coder_jack 于 2013-04-30 16:51:37 编辑 今天突然发现我在ubuntu中用gcc编译一个文件后,生成的可执行文件没有执行权限,就算chmod 777 后也无法执行!求教! gcc -c pid.c -o pid  chmod a+x pid  ./pid 结果: bash: ./p...

本帖最后由 coder_jack 于 2013-04-30 16:51:37 编辑
今天突然发现我在ubuntu中用gcc编译一个文件后,生成的可执行文件没有执行权限,就算chmod 777 后也无法执行!求教!
gcc -c pid.c -o pid
 chmod a+x pid
 ./pid
结果:
bash: ./pid: cannot execute binary file
用file查看:
 file pid
结果
pid: ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), not stripped

下面是用file命令查看以前写的一个测试程序,这个是好的。这个以前也是用同样的gcc命令编译的,而且编译的结果本身就有可执行权限。但是用file命令发现和上面的不样
file str-test
结果:
str-test: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=0x86469a8dac9963f16a4986ceec9fbf1f8f689372, not stripped


求解,谢谢

|
楼主用了-c选项,-c选项的含义:
 -c  Compile or assemble the source files, but do not link. 
所以,-o选项输出的pid,实际是一个.o文件,有关键字“relocatable”。
楼主用gcc pid.c -o pid生成的才是可执行文件,“executable”。

|
是的,gcc pid.c -o pid

    
 
 

您可能感兴趣的文章:

  • arm-linux-gcc交叉编译出错,但gcc编译没错,什么原因呢???
  • 嵌入式linux开发:一段代码在windows平台用VC编译运行正常,在linux平台用gcc编译运行正常,但是用arm-linux-gcc编译在嵌入式板子上运行就不正常.
  • GCC3.4可以编译2.4内核吗 如何查看某版本内核是用哪个版本gcc编译的
  • 使用popen来执行gcc命令,如何根据读出来的gcc的输出来判断gcc是否编译成功?
  • 问:关于gcc编译器和g++编译器
  • 求一个编译好的的gcc编译器
  • 编译GCC时能不能只编译C/C++的编译器?
  • gcc编译时出错,gcc: installation problem, cannot exec `as': 没有那个文件或目录!!!求助呀呀!!!!!
  • 建立较差编译环境,编译gcc-3.4.4出错
  • gcc与arm-linux-gcc编译的问题???
  • Linux下gcc编译时,如何以静态链接的形式编译?
  • Solaris8,安装了iconv,gcc和gcclib,然后用gcc编译c程序出错。
  • 使用eclipse 加入arm-elf-gcc 或arm-linux-gcc 编译器为什么不好使
  • 是否必须用同一版本GCC编译内核、应用程序、库甚至GCC自己?
  • linux x86_64下由于拷贝gcc的lib目录导致gcc编译器出错
  • GCC编译程序时,有自定义头文件,提示找不到该头文件,但他就在这个目录中,如何设置GCC参数?
  • 使用gcc编译器进行代码编译出来的程序是否遵循gpl协议
  • 为什么g++编译通过了,而gcc却编译通过不了???
  • ubuntu 10.10出现极其诡异的情况,使用gcc编译没任何反应,可以继续输入,但是不提示任何错误;使用make编译效果一样;
  • 求助:当用 gcc 编译时没,加上优化选项 -02 ,可是提示是 gcc: unrecognized option `-02'
  • root帐户使用GCC编译程序时,提示权限不够!!
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 我用GCC生成的可执行文件无法直接在shell命令行下执行,这是为什么?可以用调试器调入执行。我用Red Hat7.0
  • 用gcc编译完的可执行文件可以双击执行吗
  • 关于gcc编译、执行的问题!
  • GCC编译的Hello World为何不能执行
  • gcc使用的问题,为什么不能执行a.out文件?
  • 用gcc编译c程序能通过,为何没执行结果?
  • 64位linux下面的GCC如何编译出一个32位可执行程序?
  • 问一个很菜的问题:我在Linux下用gcc编译生成的a.out文件怎么执行?
  • 小试牛刀结果一头雾水!关于gcc编译后的a.out居然无法执行,系统说:我没有找到!:-(
  • 菜鸟问题一个:gcc 编译后不能执行
  • gcc编译链接的时候出错,不能生成可执行文件。
  • 用gcc -g编译出来的再用kdbg 调试时,执行顺序怎么乱七八糟的
  • 给个GCC的可执行文件下载地址,谢谢我的是红帽子9.0
  • gcc 和g++分别编译出来的.o 再一起连接成可执行程序,是否有问题。
  • 我在RedHat中用gcc编译s.c,什么都没产生,也没报错,但是编译a.c的时候就生成可执行文件,这是怎么回事?
  • gcc如何得到执行程序的名字和路径
  • 请问:我怎么样使得输入"GCC"以后执行的是新安装的新版本的GC,而不是旧的!以及我的操作是不是正确?
  • 在gcc里面,用哪个参数将几个目标文件链成一个大的目标文件(不是最终的可执行文件)
  • sco下用gcc编译hello.cpp出来的可执行文件居然有2800280字节,而且运行出错???
  • 下载了一个gcc安装程序,按照网页上说明的步骤做,但是当执行configure命令时总体实找不到c的编译器。
  • Linux下GCC内置原子操作函数(多线程资源访问)介绍
  • 命令:mips_fp_le-gcc,mipsel-gcc 是什么意思?跟一般的gcc有什么区别?
  • 怎样升级我的GCC呀,我用的RH7.2,GCC 2.96 ,我从网上下载了一个gcc-3.2.3.tar.gz
  • arm-elf-gcc 和 arm-linux-gcc有什么区别?arm-elf-gcc里的elf代表什么?
  • gcc-ccore、avr-gcc及arm-gcc的区别
  • gcc在哪里?bash:gcc:command not found
  • 如何删掉GCC3.0(我需要GCC2.0-----)
  • Windows版GCC TDM-GCC
  • 急问:如何卸掉gcc 3.2庄gcc 2.96
  • 有人遇到过吗,在安装GCC时提示,"checking gcc ...no "
  • GCC无法安装的问题,希望有人帮我( Debian 4.04ra无法安装GCC)


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,