获取错误未定义引用`int * __ errno_location()'构建二进制文件

时间:2017-01-17 06:49:08

标签: c++

我正在尝试构建服务器文件utcserr.ser并且我收到错误: lib4eye.so:未定义的引用`int * __ errno_location()'。 我能够成功构建lib4eye.so而没有任何错误。

但是如果我试着在lib4eye.so中看到__errno_location,它会显示为未定义。

输出" nm -AC lib4eye.so | grep errno_location" 是:

lib4eye.so:         U __1cQ__errno_location6F_pi_

包含的标题 errno.h 包含以下代码:

extern int *__errno_location (void) __THROW __attribute__ ((__const__));
#   define errno (*__errno_location ())

我还试图链接libpthread.so和libc.so但没有用。错误仍然存​​在。

此外,我们正在构建32位Linux环境。

请帮助。

为了构建lib4eye.so,我使用以下命令:

  

CC -m32 -g -G -KPIC -o $ @ $(OBJECTS)

其中$ OBJECTS是放置所有.o的路径。

用于构建服务器" utcserr.ser" ,我正在使用命令:

  

buildserver -v -r Oracle_XA \
  -o $ BIN / utcserr \
  -f $ HOME / COMM_BROOT / MEM / obj / main_mem.o \
  -f $ HOME / ARCH_SVR / utcserr / obj / err.o \
  -f $ HOME / ARCH_SVR / utcserr / obj / eut0101.o \
  -f -lQZ_RPC \
  -f -lQZXML \
  -f -ldm \
  -f -l4eye \
  -f -lpthread-2.12 \
  -f -lc-2.12 \
  -f -lstt \
  -f -lmem \\   -f -lQlog \
  -f -lutil \
  -f -lAudit \
  -f -lobj \
  -f -ldmstd \
  -f -lAtrAuth \
  -f -lARCHrbe \
  -f -lQZ_UTIL \
  -f -ltuxreal \
  -f -lxlerr \
  -f $ HOME / GENCODE / lib / linux / ARCH_lib.a \
  -f $ HOME / GENCODE / lib / linux / QZ_lib.a \
  -f -lxlse \
  -f -lqz \
  -f -lxlclass \
  -f -lclass \
  -f -lcfiles \
  -f -lutil \
  -b shm \
  -s EUT0101_Diagnos \
  -s INFORM_ERROR \
  -s SHUTDOWN

0 个答案:

没有答案