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


你可以帮帮我吗?

谢谢。

最佳答案

您链接到zlib太早了;链接到静态库时顺序很重要。尝试将$(LIBS)放在vncserver静态库之后。

您可能要考虑使用pkg-config; libvncserver附带一个* .pc文件,这几乎是它设计的……在我的系统上,pkg-config --libs libvncserver看起来像:

-lvncserver -lnsl -lpthread -lz -lpng -ljpeg -lresolv -lgcrypt -ldl -lgpg-error -lgnutls -lz

关于c - 使用libvncserver编译项目时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49559313/

10-11 21:31