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

GCC编译的时候能跟vc一样把exe和PDB文件分开吗?

    来源: 互联网  发布时间:2017-05-21

    本文导语:  就是想把执行文件和调试信息文件分开。 网上找到的办法是用objcopy 从本来用-G编译好的文件中分离出 可执行文件和符号信息文件。 试了下可以做到。 但是分离出来的可执行文件比本身用-o编译出来的文件还是大...

就是想把执行文件和调试信息文件分开。

网上找到的办法是用objcopy 从本来用-G编译好的文件中分离出 可执行文件和符号信息文件。

试了下可以做到。
但是分离出来的可执行文件比本身用-o编译出来的文件还是大了点。
不知道为什么

有没有g++编译的时候就直接把 调试信息和可执行文件分离的编译选项?

这种事情,正常的公司是怎么做的?用-G先编译出来,然后用objcopy 分离?然后发布分离出来的可执行文件?

|
确实楼主问的好问题!

先说说我们现在负责的产品,是没有将symbol保存下来,而且直接strip binary然后发布出去。这样确实会来来一个问题,就是经常会出现程序crash之后,只能强制使用不一致的带符号信息的binary去分析。或者说如果分析不出来,我们将会重新编译一份带符号信息的binary出来,让客户去重现问题。然后分析dump..... 这样的做法确实不妥。那么我也和楼主有同样的问题,如何去做呢?

后来想想,很多的Linux应用程序在发布后,同时都会发布一个debuginfo的rpm包,也就是说他们会将symbol内容从binary中取出来,然后打包。

最后关于一般如何分离Symbol等信息,应该就是如您所说的objcopy。
关于更多查看:
http://stackoverflow.com/questions/866721/how-to-generate-gcc-debug-symbol-outside-the-build-target

    
 
 

您可能感兴趣的文章:

  • 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'
  • 安装gcc4.1.0的时候make时候产生的一个警告,大家帮我看看是怎么回事?
  • xmkmf,在自动生成Makefile的时候,能不能够指定用gcc编译?请大虾解决
  • 编写gcc的时候 (`)个符号表示什么意思(1前面的那个点符号)?
  • 在linux安装gcc的时候报:configure:no acceptable cc found in $PATH
  • 怎么用gcc编译的时候链进库
  • gcc编译链接的时候出错,不能生成可执行文件。
  • gcc链接的时候报错,为什么?
  • gcc的静态库.lib怎末在编译的时候连接。对了静态库是自己的???
  • 求问gcc在64位编译汇编代码时候,GOTPCREL的意义。
  • 我在RedHat中用gcc编译s.c,什么都没产生,也没报错,但是编译a.c的时候就生成可执行文件,这是怎么回事?
  • 我用gcc编了一个小内核模块,但是用insmod安装的时候提示内核版本不对,怎么办?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请问用GCC 编译,如何生成MAP文件?就是内存的分布映像文件?
  • 在Unix环境下用gcc如何编译成动态链接库文件?类似Windows下的DLL文件。
  • 请大家帮忙gnu ftp上gcc源码是哪个文件?
  • 在linux中"XXX.l"是什么文件(文件扩展名为L),用gcc怎么编译?谢谢大家!
  • 在gcc里面,用哪个参数将几个目标文件链成一个大的目标文件(不是最终的可执行文件)
  • gcc中,一个.c文件中的函数,如何调用另一个.c文件中的函数?
  • gcc生成什么样的目标文件?
  • gcc程序怎么不能将输出重定向到文件或管道呀,你们有这个问题吗?
  • 请教如何能把 gcc编译的所有信息存放到一个文件里
  • 使用gcc,如何在Solaris上生成so动态库文件?
  • gcc加什么选项可以把一个.c文件编译为相应的.o文件?
  • gcc的编译头文件问题
  • 关于用gcc(g++) 编译其它扩展名(比如hpp)的合法的源文件??
  • GCC是怎么通过.h文件找到C函数库的
  • 怎么将GCC的出错信息导入到文件中?
  • 请问:ubuntu下编译的openssl的.so文件放在那个目录 下阿?GCC如何导入.so的库文件?
  • 减小GCC编译的文件的大小
  • ubuntu gcc 找不到 stdarg.h文件
  • 如何使用arm-uclibc-gcc将.c文件编译生成.a,将.c文件编译生成.cgi?
  • gcc 编译多文件遇到问题
  • 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,