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

gcc 非静态链接产生段错误

    来源: 互联网  发布时间:2017-03-01

    本文导语:  我虚拟机里的Linux是自己DIY的,为了在里面编译一个Hello world,我把一个已经装有gcc的系统里的gcc命令、库 复制(主要复制了/usr/include 和 usr/lib 里面的文件)到虚拟机里的相应目录(我从复制gcc和ld程序开始,利...

我虚拟机里的Linux是自己DIY的,为了在里面编译一个Hello world,我把一个已经装有gcc的系统里的gcc命令、库 复制(主要复制了/usr/include 和 usr/lib 里面的文件)到虚拟机里的相应目录(我从复制gcc和ld程序开始,利用ldd和提示 把依赖的库一点一点复制到虚拟机里)直到可以利用gcc正常编译Hello world。
但是发现在虚拟机里利用
 gcc main.c 

编译出来的程序会产生Segmentation fault:
gcc 非静态链接产生段错误[图片]
但是静态链接hello world可以正常运行:
 gcc -static main.c 


另外,执行:
 ld -nostdlib -o hello -dynamic-linker /lib/ld-linux.so.2 /usr/lib/crt1.o /usr/lib/crti.o main.o -L /usr/lib/ -lc /usr/lib/crtn.o 

可以在装有gcc的系统里面生成可运行的程序,但在DIY的Linux里则会提示类似以下的错误:
。。。
/lib//libc.a(fseek.o): In function `fseek':
(.text+0xde): undefined reference to `_Unwind_Resume'
/lib//libc.a(fseek.o):(.eh_frame+0xdf): undefined reference to `__gcc_personality_v0'
/lib//libc.a(ftello.o): In function `ftello':
(.text+0x194): undefined reference to `_Unwind_Resume'
/lib//libc.a(ftello.o):(.eh_frame+0xdf): undefined reference to `__gcc_personality_v0'
。。。

请问为什么这种情况下 gcc 非静态链接产生段错误,还有以上的错误能不能看出需要再链接什么库?

|
原来说过了,不同的Linux的库有可能不兼容(版本,关键是API和ABI)

后面那个链接错误是缺少异常库,即-lgcc_eh,但是异常库不同版本的ABI极容易发生更改,更别说还有sjlj/dw2异常之分了

    
 
 

您可能感兴趣的文章:

  • gcc的静态库.lib怎末在编译的时候连接。对了静态库是自己的???
  • Linux下gcc编译时,如何以静态链接的形式编译?
  • 请教一个gcc静态编译的问题。
  • 如何在gcc中调用静态库(.a)中的函数?谢谢!
  • gcc如何静态地调用 lstdc++库?
  • 在linux下用gcc编译时能不能实现“选择”的静态连接呢?
  • gcc 做一个动态库 要包含一个静态库
  • 如何解析gcc ar命令产生的静态库?
  • gcc静态链接的疑问
  • gcc 静态链接的问题
  • GCC中VMA和LMA在静态编译情况下是否相等?
  • GCC中静态连接和动态连接的区别(LINUX下)
  • 200分求解:程序中同时用到共享库(.so)、静态库(.a),编译时gcc的参数该如何设置?
  • GCC 编译使用动态链接库和静态链接库的方法
  • 【紧急求助】IBM AIX 4.3.3上用gcc 静态链接程序出错,不知为何?
  • 我在RedHat中用gcc编译s.c,什么都没产生,也没报错,但是编译a.c的时候就生成可执行文件,这是怎么回事?
  • 安装gcc4.1.0的时候make时候产生的一个警告,大家帮我看看是怎么回事?
  • 为什么我用GCC编译后,在源文件中定义的宏被修该了?(产生编译错误)
  • 求救:用gcc xx.c产生的a.out怎么会不好使呢
  • gcc编译时产生总线错误
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 一套未安装gcc的Linux中安装gcc rpm包时时出现错误
  • 我在Solaris8上安装了gcc3.3Solaris8,但是总是出错!错误如下:gcc: syntax error at line 1: `(' unexpected
  • gcc编译错误
  • 编译 cross-gcc 的错误
  • gcc升级,提示insn-attrtab.o错误
  • gcc-4.4.2升级错误
  • 如何将gcc编译的警告及错误信息保存到文件
  • GCC curses动态库链接的错误
  • 如何将gcc的编译错误输出到一个文本文件?
  • arm-linux-gcc编译XML错误
  • 能否把gcc的错误提示输出到一个文件中?
  • gcc 如何打印上此的错误信息
  • 大神们好! yum install gcc出现错误,请大神指点!
  • 使用arm-linux-gcc编译,出现compilation of header file requested错误
  • gcc编译中出现的这种错误提示 stray '357' in program
  • gcc 编译时错误
  • gcc运行程序出现错误,求助。。。
  • linux环境下gcc编译器对sin函数出现的错误
  • ubuntu 10.10出现极其诡异的情况,使用gcc编译没任何反应,可以继续输入,但是不提示任何错误;使用make编译效果一样;
  • gcc helloworld 出现错误......
  • Linux下GCC内置原子操作函数(多线程资源访问)介绍
  • 使用popen来执行gcc命令,如何根据读出来的gcc的输出来判断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 "


  • 站内导航:


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

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3