我正在用g ++编译,但是当我运行make时,我收到以下错误:
./libnbmdt.so: undefined reference to `inflateInit2_'
./libnbmdt.so: undefined reference to `zlibVersion'
./libnbmdt.so: undefined reference to `inflate'
./libnbmdt.so: undefined reference to `inflateInit_'
./libnbmdt.so: undefined reference to `inflateEnd'
collect2: ld returned 1 exit status
make[2]: *** [nbbid2md] Error 1
make[1]: *** [all] Error 2
make: *** [nb/nbmdt] Error 1
有没有人见过这个?我想-l<somelibrary>
是必需的,但我不知道哪一个......顺便说一下,这是一个c ++程序。我想当g ++试图链接它们时,zlib会丢失吗?
一些正在使用的库是:
MT_VLIBS = \
libjansson.a \
libnbI18N.a \
libnbslidlC.a \
libnbslidlS.a \
libcurl.a \
libVdb \
libnborb \
libnbbase \
-lvxul \
-lvxssl \
-lvxcrypto
遗憾的是,我无法共享makefile。 感谢
答案 0 :(得分:1)
你是对的 - “-lz”标志是要使用的标志。 ZLib没有链接,因此不是“膨胀”功能。
请注意以下几点:“-lz”必须在“-lnb *”之后,因为链接顺序对于GCC工具链很重要。
答案 1 :(得分:1)
我今天解决了这个问题,在我的makefile上添加$ if条件,使用-lz标志。 这有点复杂,但我解决了。