测试 Paillier 库时出错:(.text+0x72): undefined reference to

Error in testing Paillier library: (.text+0x72): undefined reference to

我正在尝试使用这个 Paillier 库 http://acsc.cs.utexas.edu/libpaillier/ ,它只是我试图为 Mysql 服务器

制作的一些 UDF 的一部分

这是我的 Rakefile 的一部分:

task :compile do
  puts 'Compiling the encryption / decryption program.'
  system("gcc -L/usr/local/lib/ -I/usr/local/include/ -lgmp -lpaillier #{config[:exec_file]}.c -o #{config[:exec_file]}")
end

但是,我遇到了这个错误:

cipher.c:(.text+0x72): undefined reference to `paillier_get_rand_devurandom'
cipher.c:(.text+0x79): undefined reference to `paillier_keygen'
cipher.c:(.text+0x85): undefined reference to `paillier_pubkey_to_hex'
cipher.c:(.text+0x95): undefined reference to `paillier_prvkey_to_hex'
cipher.c:(.text+0xe3): undefined reference to `paillier_freepubkey'
cipher.c:(.text+0xef): undefined reference to `paillier_freeprvkey'
/tmp/ccMPIY0I.o: In function `getKey':

那么,请问有人知道问题出在哪里吗?

Ps:exec_file 是我包含 paillier.h

的 C 文件

您的 gcc 调用中的参数顺序可能有问题。 库应该写在源文件和输出文件之后:

gcc -L/usr/local/lib/ -I/usr/local/include/ #{config[:exec_file]}.c -o #{config[:exec_file]} -lgmp -lpaillier

另见 this question