1

尝试在 Ubuntu 12.04(64 位)上“制作”cpabe-0.11工具包/库时出现以下错误。所有必需的库,包括 libgmp,都已正确安装在系统中。

/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/4.6.1/../../../../lib/libpbc.so: undefined reference to symbol '__gmpz_clear'
/usr/bin/ld: note: '__gmpz_clear' is defined in DSO /usr/lib/libgmp.so.3 so try adding it to the linker command line
/usr/lib/libgmp.so.3: could not read symbols: Invalid operation
collect2: ld returned 1 exit status
make: *** [cpabe-setup] Error 1
4

1 回答 1

3

所以我终于解决了这个问题。基本上我得到了错误 bcz 由于某种原因 libgmp 没有在 make 中链接(这就是错误的意思)。但是当我检查通过运行 ./configure 创建的 Makefile 时,它​​说:-

...blah blah blah ...
LDFLAGS = -O3 -Wall \
        -lglib-2.0   \
        -Wl,-rpath /usr/local/lib -lgmp \
        -Wl,-rpath /usr/local/lib -lpbc \
        -lbswabe \
        -lcrypto -lcrypto
... blah blah blah ...

如您所见,LDFLAGS 中提到了 libgmp。如此多的混乱随之而来。一时兴起,它尝试了对 Makefile 的以下修改:-

LDFLAGS = -O3 -Wall \
        -lglib-2.0   \
        -Wl,-rpath /usr/local/lib -lgmp \
        -Wl,-rpath /usr/local/lib -lpbc \
        -lbswabe \
        -lcrypto -lcrypto \
        -lgmp

所以现在,由于某种奇怪的原因,它编译得很好。

于 2012-04-30T12:28:51.010 回答