0
我已經安裝了GCC
4.7.2和5.1.0 GMP
和我在寫main.cpp
這個簡單的代碼查找在~/Desktop
:鏈接外部庫GCC OS X
#include <iostream>
#include <gmp.h>
using namespace std;
int main()
{
mpz_t a;
mpz_init(a);
mpz_set_ui(a, 42);
cout << "Hello, world!" << endl;
}
我編譯
$ g++ main.cpp -o exe
但我收到此錯誤信息:
Undefined symbols for architecture x86_64:
"___gmpz_init", referenced from:
_main in ccC0FXun.o
"___gmpz_set_ui", referenced from:
_main in ccC0FXun.o
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit status
我認爲這是因爲它沒有找到GMP
圖書館,對吧?
那麼如何鏈接GCC
中的外部庫如GMP
?
好吧,它與-lgmp標誌一起使用。但是,例如,爲什麼我不必寫-liostream? – fpiro07
由於'iostream'不是一個庫,它是一個頭文件,並且當使用'g ++'時,相應的庫(通常是'libstdC++')隱含地包含在鏈接中。 –
例如,如果我還必須使用已安裝的'acme.a'library,則必須編寫:'$ g ++ main.cpp -o exe -lgmp -lacme',對不對? – fpiro07