Ошибка при тестировании библиотеки Пайе: (.text+0x72): неопределенная ссылка на

Я пытаюсь использовать этот библиотеку Paillier http://acsc.cs.utexas.edu/libpaillier/, это будет лишь часть некоторой UDF, которую я пытаюсь сделать для сервера Mysql

Это часть моего 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

1 ответ

Решение

У вас может быть проблема в порядке аргументов в вашем вызове gcc. Библиотеки должны быть написаны после исходного файла и выходного файла:

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

Смотрите также этот вопрос.

Другие вопросы по тегам