Android 构建libvncserver未定义的对_gnu_mcount_nc的引用

Android 构建libvncserver未定义的对_gnu_mcount_nc的引用,android,android-ndk,undefined-reference,vnc-server,Android,Android Ndk,Undefined Reference,Vnc Server,我正在尝试将LIBVNCSERVER构建为共享库,而不是可执行库。 用于构建libVNCSERVER的make文件为 include $(CLEAR_VARS) LOCAL_PATH := $(INITIAL_PATH) #for vnc LIBVNCSERVER_ROOT:=./LibVNCServer-0.9.9 LIBVNCSERVER_SRC_FILES:= \ $(LIBVNCSERVER_ROOT)/libvncserver/main.c \ $(LIBVNCSERVER_ROOT)

我正在尝试将
LIBVNCSERVER
构建为共享库,而不是可执行库。 用于构建libVNCSERVER的make文件为

include $(CLEAR_VARS)
LOCAL_PATH := $(INITIAL_PATH)
#for vnc
LIBVNCSERVER_ROOT:=./LibVNCServer-0.9.9
LIBVNCSERVER_SRC_FILES:= \
$(LIBVNCSERVER_ROOT)/libvncserver/main.c \
$(LIBVNCSERVER_ROOT)/libvncserver/rfbserver.c \
$(LIBVNCSERVER_ROOT)/libvncserver/rfbregion.c \
$(LIBVNCSERVER_ROOT)/libvncserver/auth.c \
$(LIBVNCSERVER_ROOT)/libvncserver/sockets.c \
$(LIBVNCSERVER_ROOT)/libvncserver/stats.c \
$(LIBVNCSERVER_ROOT)/libvncserver/corre.c \
$(LIBVNCSERVER_ROOT)/libvncserver/hextile.c \
$(LIBVNCSERVER_ROOT)/libvncserver/rre.c \
$(LIBVNCSERVER_ROOT)/libvncserver/translate.c \
$(LIBVNCSERVER_ROOT)/libvncserver/cutpaste.c \
$(LIBVNCSERVER_ROOT)/libvncserver/httpd.c \
$(LIBVNCSERVER_ROOT)/libvncserver/cursor.c \
$(LIBVNCSERVER_ROOT)/libvncserver/font.c \
$(LIBVNCSERVER_ROOT)/libvncserver/draw.c \
$(LIBVNCSERVER_ROOT)/libvncserver/selbox.c \
$(LIBVNCSERVER_ROOT)/libvncserver/cargs.c \
$(LIBVNCSERVER_ROOT)/libvncserver/ultra.c \
$(LIBVNCSERVER_ROOT)/libvncserver/scale.c \
$(LIBVNCSERVER_ROOT)/libvncserver/zlib.c \
$(LIBVNCSERVER_ROOT)/libvncserver/zrle.c \
$(LIBVNCSERVER_ROOT)/libvncserver/zrleoutstream.c \
$(LIBVNCSERVER_ROOT)/libvncserver/zrlepalettehelper.c \
$(LIBVNCSERVER_ROOT)/common/d3des.c \
$(LIBVNCSERVER_ROOT)/common/vncauth.c \
$(LIBVNCSERVER_ROOT)/common/minilzo.c \
$(LIBVNCSERVER_ROOT)/common/zywrletemplate.c

LOCAL_CFLAGS  +=  -Wall \
                                -O3 \
                                -DLIBVNCSERVER_HAVE_ZLIB
LOCAL_C_INCLUDES += \
                                    $(LOCAL_PATH) \
                                    $(LOCAL_PATH)/$(LIBVNCSERVER_ROOT)/libvncserver \
                                    $(LOCAL_PATH)/$(LIBVNCSERVER_ROOT)/common \
                                    $(LOCAL_PATH)/$(LIBVNCSERVER_ROOT)/rfb \
                                    $(LOCAL_PATH)/$(LIBVNCSERVER_ROOT)/

LOCAL_MODULE    := myvnc
#for profiling
LOCAL_CFLAGS := -pg
#LOCAL_STATIC_LIBRARIES += android-ndk-profiler
LOCAL_ARM_MODE := arm  # remove this if you want thumb mode
LOCAL_SRC_FILES := $(LIBVNCSERVER_SRC_FILES)\
                vncmain.c
LOCAL_LDLIBS += -llog -lz -ldl -lpthread
LOCAL_ARM_NEON := true 
LOCAL_SHARED_LIBRARIES := libz
include $(BUILD_SHARED_LIBRARY)
我从
socket.c
文件中获得了对
\u gnu\u mcount\u nc
的未定义引用

Compile arm    : myvnc <= main.c
Compile arm    : myvnc <= rfbserver.c
Compile arm    : myvnc <= rfbregion.c
Compile arm    : myvnc <= auth.c
Compile arm    : myvnc <= sockets.c
Compile arm    : myvnc <= stats.c
Compile arm    : myvnc <= corre.c
Compile arm    : myvnc <= hextile.c
Compile arm    : myvnc <= rre.c
Compile arm    : myvnc <= translate.c
Compile arm    : myvnc <= cutpaste.c
Compile arm    : myvnc <= httpd.c
Compile arm    : myvnc <= cursor.c
Compile arm    : myvnc <= font.c
Compile arm    : myvnc <= draw.c
Compile arm    : myvnc <= selbox.c
Compile arm    : myvnc <= cargs.c
Compile arm    : myvnc <= ultra.c
Compile arm    : myvnc <= scale.c
Compile arm    : myvnc <= zlib.c
Compile arm    : myvnc <= zrle.c
Compile arm    : myvnc <= zrleoutstream.c
Compile arm    : myvnc <= vncauth.c
Compile arm    : myvnc <= vncmain.c
SharedLibrary  : libmyvnc.so
D:/Android/tool_set/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi-v7a/objs/myvnc/./LibVNCServer-0.9.9/libvncserver/sockets.o: in function rfbShutdownSockets:jni/./LibVNCServer-0.9.9/libvncserver/sockets.c:219: error: undefined reference to '__gnu_mcount_nc'
D:/Android/tool_set/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi-v7a/objs/myvnc/./LibVNCServer-0.9.9/libvncserver/sockets.o: in function rfbDisconnectUDPSock:jni/./LibVNCServer-0.9.9/libvncserver/sockets.c:456: error: undefined reference to '__gnu_mcount_nc'
D:/Android/tool_set/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi-v7a/objs/myvnc/./LibVNCServer-0.9.9/libvncserver/sockets.o: in function rfbCloseClient:jni/./LibVNCServer-0.9.9/libvncserver/sockets.c:464: error: undefined reference to '__gnu_mcount_nc'
D:/Android/tool_set/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi-v7a/objs/myvnc/./LibVNCServer-0.9.9/libvncserver/sockets.o: in function rfbReadExactTimeout:jni/./LibVNCServer-0.9.9/libvncserver/sockets.c:544: error: undefined reference to '__gnu_mcount_nc'
collect2: ld returned 1 exit status
make: *** [obj/local/armeabi-v7a/libmyvnc.so] Error 1

compilearm:myvnc从CFLAGS中删除-pg,您不需要它来构建库,使用它生成的代码将比需要的稍慢

如果您真的需要评测代码,那么您将需要自己的u_gnu_mcount_nc实现。有关详细信息,请参阅