未定义的引用`__isoc99_sscanf'

时间:2017-11-22 13:16:07

标签: c

我正在编译SUSE 11 SP3上的C代码程序,它总是把错误放在标题显示的位置。我尽力搜索某些方法来修复它。不幸的是,它们不起作用

aa/lib/sftp_fsmeg_proc.o /si/usr/aa/lib/rtsc_obm.a /si/usr/aa/lib/sftp.a /si/usr/aa/lib/fisc_app.a /si/usr/aa/lib/rtsc_app.a /si/usr/aa/lib/rtsc_db.a /si/usr/aa/lib/arch.a /si/usr/aa/lib/arch.a -lclntsh `cat /home2/oracle/product/11gr2/db/lib/ldflags`   `cat /home2/oracle/product/11gr2/db/lib/sysliblist` -ldl -lm  
/si/usr/aa/lib/sftp_public.o:function ‘sftp_slip_filename’:
/si/usr/aa/src/arch/sftp/sftp_public.c:459:undefined reference to ‘__isoc99_sscanf’
/si/usr/aa/lib/arch.a(arch_datetime.o):function ‘arch_chk_date’:
/si/usr/aa/src/arch/arch_datetime.c:124:undefined reference to `__isoc99_sscanf'
/si/usr/aa/lib/arch.a(arch_datetime.o):function ‘arch_chk_time’:
/si/usr/aa/src/arch/arch_datetime.c:375:undefined reference to `__isoc99_sscanf'
/si/usr/aa/lib/arch.a(arch_datetime.o):function ‘arch_timestr_to_time’:
/si/usr/aa/src/arch/arch_datetime.c:847:undefined reference to `__isoc99_sscanf'

我的gcc版本是4.3.4,而libc是2.11.3。

$gcc --version
gcc (SUSE Linux) 4.3.4 [gcc-4_3-branch revision 152973]
Copyright (C) 2008 Free Software Foundation, Inc.
$/lib64/libc.so.6
GNU C Library stable release version 2.11.3 (20110527), by Roland McGrath et al.
Copyright (C) 2009 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Configured for x86_64-suse-linux.
Compiled by GNU CC version 4.3.4 [gcc-4_3-branch revision 152973].
Compiled on a Linux 2.6.32 system on 2013-05-10.
Available extensions:
        crypt add-on version 2.1 by Michael Glad and others
        GNU Libidn by Simon Josefsson
        Native POSIX Threads Library by Ulrich Drepper et al
        BIND-8.2.3-T5B
For bug reporting instructions, please see:
<http://www.gnu.org/software/libc/bugs.html>.

我尝试用错误信息显示的Line写一个miniel,看起来工作正常。当我添加/lib64/libc.so.6时,它也可以成功编译。

$/usr/bin/gcc -m64 -fPIC -g -I . -DSFTP_DEBUG -I /si/usr/aa/include/arch -I /si/usr/aa/include/fisc/app -I /si/usr/aa/include/rtsc -I /si/usr/aa/include/rtsc/app -I /si/usr/aa/include/rtsc/db -I /si/usr/aa/include/arch -I /si/usr/aa/include/arch \
> -o sftp_server -m64  -L/home2/oracle/product/11gr2/db/precomp/lib/ -L/home2/oracle/product/11gr2/db/lib/ -L/home2/oracle/product/11gr2/db/lib/stubs/ \
> -o sftp_server sftp_server.o /si/usr/aa/lib/sftp_server_proc.o /si/usr/aa/lib/sftp_public.o /si/usr/aa/lib/sftp_lzari.o /si/usr/aa/lib/sftp_fsmeg_proc.o /si/usr/aa/lib/rtsc_obm.a /si/usr/aa/lib/sftp.a /si/usr/aa/lib/fisc_app.a /si/usr/aa/lib/rtsc_app.a /si/usr/aa/lib/rtsc_db.a /si/usr/aa/lib/arch.a /si/usr/aa/lib/arch.a \
> -lclntsh `cat /home2/oracle/product/11gr2/db/lib/ldflags`   `cat /home2/oracle/product/11gr2/db/lib/sysliblist` -ldl **/lib64/libc.so.6** -lm 
$

为什么?这真的让我感到困惑。你能给我一些建议吗?谢谢你的阅读。

0 个答案:

没有答案