2016-06-17 3 views
2
#include<stdio.h> 
#include<pari/pari.h> 
int main(void) 
{ 
GEN i,j,k; 
pari_init(500000,2); 
i=gun; 
j=stoi(3); 
k=gadd(i,j); 
printf("1+3=%s",GENtostr(k)); 
return 0; 
} 

$ Я начинаю работать над библиотекой pari в C. Я установил pari-библиотеку в cygwin64 с gcc. Любая программа C/C++ работает. Это не проблема с компилятором gcc. Но когда я пытался использовать библиотеку pari для вышеуказанной программы-примера. Я получал много ошибок следующим образом.Как запустить программу C с помощью библиотеки pari с gcc?

Кроме того, я использую команду $ gcc test-pari.c для запуска программы. На самом деле мне также нужно знать, как запустить программу, написанную с использованием библиотеки pari в C. Нужно ли мне явно показывать некоторую библиотеку во время запуска. Какие-либо предложения?

/tmp/cc7ELKK4.o:test-pari.c:(.text+0x87): undefined reference to `pari_err' 
/tmp/cc7ELKK4.o:test-pari.c:(.text+0x87): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `pari_err' 
/tmp/cc7ELKK4.o:test-pari.c:(.text+0x230): undefined reference to `pari_err' 
/tmp/cc7ELKK4.o:test-pari.c:(.text+0x230): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `pari_err' 
/tmp/cc7ELKK4.o:test-pari.c:(.text+0x253): undefined reference to `pari_init' 
/tmp/cc7ELKK4.o:test-pari.c:(.text+0x253): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `pari_init' 
/tmp/cc7ELKK4.o:test-pari.c:(.text+0x27f): undefined reference to `gadd' 
/tmp/cc7ELKK4.o:test-pari.c:(.text+0x27f): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `gadd' 
/tmp/cc7ELKK4.o:test-pari.c:(.text+0x28f): undefined reference to `GENtostr' 
/tmp/cc7ELKK4.o:test-pari.c:(.text+0x28f): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `GENtostr' 
/tmp/cc7ELKK4.o:test-pari.c:(.rdata$.refptr.gen_1[.refptr.gen_1]+0x0): undefined reference to `gen_1' 
/tmp/cc7ELKK4.o:test-pari.c:(.rdata$.refptr.gen_0[.refptr.gen_0]+0x0): undefined reference to `gen_0' 
/tmp/cc7ELKK4.o:test-pari.c:(.rdata$.refptr.bot[.refptr.bot]+0x0): undefined reference to `bot' 
/tmp/cc7ELKK4.o:test-pari.c:(.rdata$.refptr.avma[.refptr.avma]+0x0): undefined reference to `avma' 
collect2: error: ld returned 1 exit status 
+0

Пожалуйста, покажите вашу компиляцию и связывание команд GCC теста – GMichael

+0

$ -pari.c >> Я использую эту команду для компиляции, но я не использую команду linkage для библиотек pari? Не могли бы вы мне помочь? –

+0

Как насчет: "pari_close();" в конце программы? – Adam

ответ

2

Вы должны добавить, по крайней мере, -l варианта вашей команды:

gcc test-pari.c -lpari

Лучшее использование:

gcc test-pari.c -Wall -Wextra -pedantic -lpari -std=c11 -g -o test-pari 
+0

Получение ошибки снова для $ gcc test-pari.c -Wall -Wextra -pedantic -l pari -std = c11 -g -o test-pari /usr/lib/gcc/x86_64-pc-cygwin/5.4.0/ ../../../../x86_64-pc-cygwin/bin/ld: не удается найти -lpari collect2: ошибка: ld возвращен 1 статус выхода –

+0

Так что libpari недоступен. Установлен ли он? Доступно ли это? Я имею в виду: libpari.so установлен в lib dir: '/ lib' или'/usr/lib' – LPs

+0

И у вас есть тип: должен быть '-lpari' not' -l pari'. – LPs

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