我正在尝试使用这个Paillier libray 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
是一个C文件,其中包含paillier.h
答案 0 :(得分:0)
您的gcc调用中的参数顺序可能有问题。 应该在源文件和输出文件之后写入库:
gcc -L/usr/local/lib/ -I/usr/local/include/ #{config[:exec_file]}.c -o #{config[:exec_file]} -lgmp -lpaillier