我正在尝试编译一个使用libvncserver的项目。
这是我的Makefile:
CC = gcc
OBJS = rcmain.o events.o util.o cursor.o sockets.o table_crypt.o
LOBJ = launcher.o util.o d3des/d3des.o
CFLAGS = -Wall -O2 -static-libgcc -fomit-frame-pointer -std=gnu99
LIBS = -lXtst -lXext -lX11 -lpthread -ljpeg -lz
all: $(OBJS) $(LOBJ)
$(CC) $(OBJS) $(CFLAGS) $(LIBS) /usr/lib/x86_64-linux-gnu/libvncserver.a -o tvnc
strip -s tvnc
clean:
rm -f *.o *.bak core ivvnc tvnc
我收到了错误的错误:
/usr/lib/x86_64-linux-gnu/libvncserver.a(rfbserver.o): na função `rfbClientConnectionGone':
(.text+0x934): referência indefinida para `deflateEnd'
/usr/lib/x86_64-linux-gnu/libvncserver.a(rfbserver.o): na função `rfbClientConnectionGone':
(.text+0x948): referência indefinida para `deflateEnd'
/usr/lib/x86_64-linux-gnu/libvncserver.a(rfbserver.o): na função `rfbSendFileTransferChunk':
(.text+0x1d5e): referência indefinida para `compress'
/usr/lib/x86_64-linux-gnu/libvncserver.a(rfbserver.o): na função `rfbProcessFileTransfer':
(.text+0x237a): referência indefinida para `uncompress'
/usr/lib/x86_64-linux-gnu/libvncserver.a(websockets.o): na função `webSocketsEncodeHixie':
(.text+0x26): referência indefinida para `__b64_ntop'
/usr/lib/x86_64-linux-gnu/libvncserver.a(websockets.o): na função `webSocketsEncodeHybi':
(.text+0xd4): referência indefinida para `__b64_ntop'
/usr/lib/x86_64-linux-gnu/libvncserver.a(websockets.o): na função `webSocketsDecodeHybi':
(.text+0x4bc): referência indefinida para `__b64_pton'
/usr/lib/x86_64-linux-gnu/libvncserver.a(websockets.o): na função `webSocketsDecodeHixie':
(.text+0x774): referência indefinida para `__b64_pton'
/usr/lib/x86_64-linux-gnu/libvncserver.a(websockets.o): na função `webSocketsCheck':
(.text+0xfb6): referência indefinida para `__b64_ntop
...
你能帮帮我吗?
感谢。
答案 0 :(得分:0)
您过早地链接到zlib;在链接到静态库时,顺序很重要。尝试在 vncserver静态库之后放置$(LIBS)
。
您可能需要考虑使用pkg-config
; libvncserver附带了一个* .pc文件,这就是它在我的系统上设计的...... pkg-config --libs libvncserver
看起来像:
-lvncserver -lnsl -lpthread -lz -lpng -ljpeg -lresolv -lgcrypt -ldl -lgpg-error -lgnutls -lz