我正在尝试构建服务器文件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