2013-02-13 2 views
1

Я пытаюсь скомпилировать программу на языке C (gfp2.c), которая использует множество функций из библиотеки GMP. Я загрузил и установил библиотеку GMP, используя обычную последовательность настройки, создания и установки. Я также проверил проверку перед установкой и ошибок не было.Компиляция программы C с использованием GCC с ошибкой библиотеки GMP: «ld: символ (ы) не найден для архитектуры x86_64»

Я использую GMP 5.1.1, GCC 4.2.1 и MAC OS 10.8.2.

Я первый тип gcc gfp2.c -lgmp связать библиотеку, а затем попытался gcc gfp2.c и получить следующий вывод на терминал:

1407-wn-172-21-30-223:pqcrypto11_scripts dfish$ gcc gfp2.c -lgmp 

v1407-wn-172-21-30-223:pqcrypto11_scripts dfish$ gcc gfp2.c 

Undefined symbols for architecture x86_64: 

    "___gmp_printf", referenced from: 
     _print_GF in ccrft0vq.o 

    "___gmp_randinit_default", referenced from: 
     _setup_GF in ccrft0vq.o 

    "___gmp_sprintf", referenced from: 
     _get_GF in ccrft0vq.o 

    "___gmpz_add", referenced from: 
     _add_GF in ccrft0vq.o 
     _mul_GF in ccrft0vq.o 
     _sqr_GF in ccrft0vq.o 

    "___gmpz_add_ui", referenced from: 
     _add_GF_ui in ccrft0vq.o 

    "___gmpz_addmul", referenced from: 
     _inv_GF in ccrft0vq.o 

    "___gmpz_clear", referenced from: 
     _clear_GF in ccrft0vq.o 
     _setup_GF in ccrft0vq.o 
     _free_GF in ccrft0vq.o 

    "___gmpz_cmp", referenced from: 
     _cmp_GF in ccrft0vq.o 

    "___gmpz_cmp_ui", referenced from: 
     _is_one_GF in ccrft0vq.o 

    "___gmpz_fdiv_ui", referenced from: 
     _setup_GF in ccrft0vq.o 

    "___gmpz_init", referenced from: 
     _init_GF in ccrft0vq.o 
     _setup_GF in ccrft0vq.o 

    "___gmpz_init_set_str", referenced from: 
     _setup_GF in ccrft0vq.o 

    "___gmpz_init_set_ui", referenced from: 
     _setup_GF in ccrft0vq.o 

    "___gmpz_invert", referenced from: 
     _inv_GF in ccrft0vq.o 
     _a24 in ccrft0vq.o 

    "___gmpz_mod", referenced from: 
     _add_GF in ccrft0vq.o 
     _add_GF_ui in ccrft0vq.o 
     _sub_GF in ccrft0vq.o 
     _sub_GF_ui in ccrft0vq.o 
     _scalar_GF in ccrft0vq.o 
     _scalar_GF_si in ccrft0vq.o 
     _mul_GF in ccrft0vq.o 
     ... 

    "___gmpz_mul", referenced from: 
     _scalar_GF in ccrft0vq.o 
     _mul_GF in ccrft0vq.o 
     _sqr_GF in ccrft0vq.o 
     _inv_GF in ccrft0vq.o 

    "___gmpz_mul_2exp", referenced from: 
     _setup_GF in ccrft0vq.o 

    "___gmpz_mul_si", referenced from: 
     _scalar_GF_si in ccrft0vq.o 

    "___gmpz_neg", referenced from: 
     _inv_GF in ccrft0vq.o 

    "___gmpz_pow_ui", referenced from: 
     _setup_GF in ccrft0vq.o 

    "___gmpz_set", referenced from: 
     _copy_GF in ccrft0vq.o 
     _add_GF_ui in ccrft0vq.o 
     _sub_GF_ui in ccrft0vq.o 
     _neg_GF in ccrft0vq.o 

    "___gmpz_set_str", referenced from: 
     _set_GF in ccrft0vq.o 

    "___gmpz_set_ui", referenced from: 
     _shamir in ccrft0vq.o 
     _a24 in ccrft0vq.o 

    "___gmpz_sizeinbase", referenced from: 
     _mont_3ladder in ccrft0vq.o 
     _shamir in ccrft0vq.o 

    "___gmpz_sub", referenced from: 
     _sub_GF in ccrft0vq.o 
     _neg_GF in ccrft0vq.o 
     _mul_GF in ccrft0vq.o 
     _sqr_GF in ccrft0vq.o 

    "___gmpz_sub_ui", referenced from: 
     _setup_GF in ccrft0vq.o 
     _sub_GF_ui in ccrft0vq.o 

    "___gmpz_tstbit", referenced from: 
     _mont_3ladder in ccrft0vq.o 
     _shamir in ccrft0vq.o 

    "___gmpz_urandomm", referenced from: 
     _random_GF in ccrft0vq.o 

ld: symbol(s) not found for architecture x86_64 
collect2: ld returned 1 exit status 

Я довольно новыми для программирования C и с использованием библиотек и т.д., и на самом деле не знаю, что я делаю, поэтому любая помощь приветствуется. Благодаря!

ответ

1

Ваша первая попытка уже сделала компиляцию и ссылку. Вам не нужно делать второй шаг. Если вы проверите свой каталог, вы найдете файл с именем a.out, который вам нужен.

+0

Ох, вау, это было немым. Огромное спасибо! – Dieter

2

Вы должны связать в библиотеку GMP:

gcc gfp2.c -lgmp 

(это не понятно, почему вы получили, что работа сначала, а затем снова побежал без библиотеки).

Смежные вопросы