2013-02-13 24 views
1

我試圖編譯使用很多功能從GMP庫一個C程序(gfp2.c)。我使用正常的配置,製作和安裝順序下載並安裝了GMP庫。在安裝之前我也進行了make check,並且沒有錯誤。編譯C程序:「LD:符號(S)沒有發現建築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 2013-02-13 16:42:50

2

您需要在GMP庫鏈接:

gcc gfp2.c -lgmp 

(目前還不清楚爲什麼會得到最初,然後重新運行工作沒有庫)。

相關問題