编译使用libvncserver的项目时出错

时间:2018-03-29 14:59:30

标签: c gcc makefile

我正在尝试编译一个使用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
...

你能帮帮我吗?

感谢。

1 个答案:

答案 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