免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2076 | 回复: 5
打印 上一主题 下一主题

这个编译时-N选项的错误怎么解决? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-12-15 20:39 |只看该作者 |倒序浏览
debian:~/c# gcc -N a.c
/usr/bin/ld: cannot find -lgcc_s
collect2: ld returned 1 exit status

但是这样就可以
debian:~/c# gcc -c -N a.c
debian:~/c# gcc a.o



---edit---

debian:~/c# gcc -c -N a.c
debian:~/c# gcc -N a.o
也是同样的错误,请问gcc_s是个什么库?

[ 本帖最后由 zalem 于 2005-12-15 20:56 编辑 ]

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2005-12-15 21:19 |只看该作者
-N是个啥米东西呀?

论坛徽章:
0
3 [报告]
发表于 2005-12-15 21:49 |只看该作者
debian:~/c# gcc -N -v a.c
Reading specs from /usr/lib/gcc-lib/i486-linux/3.3.5/specs
Configured with: ../src/configure -v --enable-languages=c,c++,java,f77,pascal,objc,ada,treelang --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-gxx-include-dir=/usr/include/c++/3.3 --enable-shared --enable-__cxa_atexit --with-system-zlib --enable-nls --without-included-gettext --enable-clocale=gnu --enable-debug --enable-java-gc=boehm --enable-java-awt=xlib --enable-objc-gc i486-linux
Thread model: posix
gcc version 3.3.5 (Debian 1:3.3.5-13)
/usr/lib/gcc-lib/i486-linux/3.3.5/cc1 -quiet -v -D__GNUC__=3 -D__GNUC_MINOR__=3 -D__GNUC_PATCHLEVEL__=5 a.c -quiet -dumpbase a.c -auxbase a -version -o /tmp/ccyJcAra.s
GNU C version 3.3.5 (Debian 1:3.3.5-13) (i486-linux)
        compiled by GNU C version 3.3.5 (Debian 1:3.3.5-13).
GGC heuristics: --param ggc-min-expand=34 --param ggc-min-heapsize=7777
ignoring nonexistent directory "/usr/i486-linux/include"
#include "..." search starts here:
#include <...> search starts here:
/usr/local/include
/usr/lib/gcc-lib/i486-linux/3.3.5/include
/usr/include
End of search list.
as -V -Qy -o /tmp/ccRg8Zwl.o /tmp/ccyJcAra.s
GNU assembler version 2.15 (i386-linux) using BFD version 2.15
/usr/lib/gcc-lib/i486-linux/3.3.5/collect2 --eh-frame-hdr -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 -N /usr/lib/gcc-lib/i486-linux/3.3.5/../../../crt1.o /usr/lib/gcc-lib/i486-linux/3.3.5/../../../crti.o /usr/lib/gcc-lib/i486-linux/3.3.5/crtbegin.o -L/usr/lib/gcc-lib/i486-linux/3.3.5 -L/usr/lib/gcc-lib/i486-linux/3.3.5/../../.. /tmp/ccRg8Zwl.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc-lib/i486-linux/3.3.5/crtend.o /usr/lib/gcc-lib/i486-linux/3.3.5/../../../crtn.o
/usr/bin/ld: cannot find -lgcc_s
collect2: ld returned 1 exit status
debian:~/c#


这个是man ld里面的
       -N
       --omagic
           Set  the  text and data sections to be readable and writable.  Also, do
           not page-align the data segment, and  disable  linking  against  shared
           libraries.   If  the  output  format supports Unix style magic numbers,
           mark the output as "OMAGIC". Note: Although a writable text section  is
           allowed for PE-COFF targets, it does not conform to the format specifi-
           cation published by Microsoft.

和我看的linux-doc gcc-faq里面说的不大一样,结果想试试就那样了...

论坛徽章:
0
4 [报告]
发表于 2005-12-15 22:12 |只看该作者
-N应该是给连接器用的。表示不连接动态库

论坛徽章:
0
5 [报告]
发表于 2005-12-15 23:43 |只看该作者
谢谢
试了下,redhat8下面就没有问题,算了,也不急着用,估计什么时候能碰到解决方法的文章

论坛徽章:
0
6 [报告]
发表于 2005-12-16 10:24 |只看该作者
-N是ld的选项,手册上说加入它,则不链接共享库。但既然如此,似乎就不该调用ld或collect2,就象gcc的-c选项一样。
迷惑
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP