Gcc 未定义对“%uuu”的引用_sscanf@GLIBC_2.7';

Gcc 未定义对“%uuu”的引用_sscanf@GLIBC_2.7';,gcc,g++,gnu-make,Gcc,G++,Gnu Make,我试图通过链接外部库来编译src文件 获取以下错误 未定义对“\uu”的引用_sscanf@GLIBC_2.7“ make -f GNUmakefile g++ -m32 -D_POSIX_PTHREAD_SEMANTICS -g -Wl,--version-script=fix.txt -D_GNU_SOURCE -I../include ConnectionAndAuthExample.cpp -o ../Linux/ConnectionAndAuthExample_32 -L../L

我试图通过链接外部库来编译src文件

获取以下错误
未定义对“\uu”的引用_sscanf@GLIBC_2.7“

make -f GNUmakefile
g++ -m32 -D_POSIX_PTHREAD_SEMANTICS -g -Wl,--version-script=fix.txt -D_GNU_SOURCE    -I../include ConnectionAndAuthExample.cpp -o ../Linux/ConnectionAndAuthExample_32 -L../Linux -lsomelib
../Linux/libsomelib.so: undefined reference to `__isoc99_sscanf@GLIBC_2.7'
fix.txt的内容是

GLIBC_2.7 {
 global: *;
 local: *;
};
下面回答了类似的问题,但没有帮助。我想知道是否有其他人遇到过类似的错误并解决了它

我的GCC版本

-bash-3.2$ g++ --version
g++ (GCC) 4.1.2 20080704 (Red Hat 4.1.2-50)

最后,问题中的链接有助于对其他答案稍加修改。这是我的解决办法

我用以下内容创建了一个新的cpp文件

#include <iostream>
#include <stdarg.h>

__asm__(".symver __isoc99_sscanf,__isoc99_sscanf@GLIBC_2.7");

#ifdef __cplusplus
extern "C" {
#endif

int __isoc99_sscanf(const char *a, const char *b, va_list args)
{
   int i;
   va_list ap;
   va_copy(ap,args);
   i=sscanf(a,b,ap);
   va_end(ap);
   return i;
}

#ifdef __cplusplus
}
#endif
指向glibc2.7的标志。还是徒劳

-Wl,--dynamic-linker
-Wl,--rpath