पर libgmp को स्थिर रूप से लिंक करते समय त्रुटि जीएमपी दस्तावेज़ कहते हैं कि स्थैतिक लिंकिंग एक छोटे से प्रदर्शन में सुधार प्रदान कर सकता है।लिनक्स
मुझे अपने लिनक्स सिस्टम पर libgmp को स्थिर रूप से लिंक करने में समस्या हो रही है। मैंने उस मुद्दे को कम कर दिया है जो मुझे एक छोटे से टेस्ट केस में है।
gmptest.c
#include <gmp.h>
int main(int argc, char** argv) {
mpz_t foo;
mpz_init(foo);
return 0;
}
Makefile:
all: clean gmptest static
clean:
rm -f *.s
rm -f *.o
rm -f gmptest
rm -f static-gmptest
gmptest: Makefile gmptest.c
gcc -std=c99 -O3 -lgmp gmptest.c -o gmptest
static: clean Makefile gmptest.c
gcc -std=c99 -O3 -static /usr/lib/libgmp.a gmptest.c -o static-gmptest
गैर स्थिर द्विआधारी संकलित किया गया है और किसी भी मुद्दे के बिना जुड़ा हुआ है, लेकिन 'स्थिर बनाने' का उत्पादन:
gcc -std=c99 -O3 -static /usr/lib/libgmp.a gmptest.c -o static-gmptest
/tmp/ccWSFke9.o: In function `main':
gmptest.c:(.text+0x8): undefined reference to `__gmpz_init'
collect2: ld returned 1 exit status
make: *** [static] Error 1
पुस्तकालय मौजूद है:
[email protected]:~/Dropbox/static$ ls -lA /usr/lib/libgmp.a
-rw-r--r-- 1 root root 1041666 2010-02-26 13:20 /usr/lib/libgmp.a
मैंने स्थिर लिंकिंग के लिए -lgmp भी कोशिश की है, लेकिन त्रुटि वही है।
यह सब उबंटू 10.04 और 10.10 AMD64 पर है।
क्या कुछ मुझे स्पष्ट त्रुटि के रूप में बता सकते हैं?
धन्यवाद,
क्रिस।
क्या आपने फिर से प्रयास करने की कोशिश की है ताकि लाइब्रेरी-आवश्यक * कमांड लाइन पर उपयोगकर्ता के पुस्तकालय के बाद * आवश्यक हो? – ephemient