2013-06-04 7 views
15

के लिए खोज करते समय असंगत foo.so छोड़ना मैं उबंटू 13.10 64 बिट का उपयोग कर रहा हूं और मुझे vlfeat लाइब्रेरी के पायथन रैपर को संकलित करते समय निम्न त्रुटियां मिल रही हैं।/usr/bin/ld: foo

g++ -o _vlfeat.so ../../vl/aib.o ../../vl/generic.o ../../vl/hikmeans.o ../../vl/ikmeans.o ../../vl/imopv.o ../../vl/mathop.o ../../vl/pgm.o ../../vl/rodrigues.o ../../vl/stringop.o ../../vl/getopt_long.o ../../vl/host.o ../../vl/imop.o ../../vl/imopv_sse2.o ../../vl/mser.o ../../vl/random.o ../../vl/sift.o ../../vl/dsift.o mser/vl_erfill.o mser/vl_mser.o sift/vl_sift.o sift/vl_dsift.o sift/vl_siftdescriptor.o imop/vl_imsmooth.o misc/vl_binsum.o kmeans/vl_hikmeans.o kmeans/vl_ikmeans.o kmeans/vl_hikmeanspush.o kmeans/vl_ikmeanspush.o py_vlfeat.o -m64 -msse -m32 -msse -shared -lboost_python-mt-py27 
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../libboost_python-mt-py27.so when searching for -lboost_python-mt-py27 
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../libboost_python-mt-py27.a when searching for -lboost_python-mt-py27 
/usr/bin/ld: skipping incompatible /usr/lib/libboost_python-mt-py27.so when searching for -lboost_python-mt-py27 
/usr/bin/ld: skipping incompatible /usr/lib/libboost_python-mt-py27.a when searching for -lboost_python-mt-py27 
/usr/bin/ld: cannot find -lboost_python-mt-py27 
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.7/libstdc++.so when searching for -lstdc++ 
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.7/libstdc++.a when searching for -lstdc++ 
/usr/bin/ld: cannot find -lstdc++ 
/usr/bin/ld: skipping incompatible /usr/lib/x86_64-linux-gnu/libm.so when searching for -lm 
/usr/bin/ld: skipping incompatible /usr/lib/x86_64-linux-gnu/libm.a when searching for -lm 
/usr/bin/ld: cannot find -lm 
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.7/libgcc_s.so when searching for -lgcc_s 
/usr/bin/ld: cannot find -lgcc_s 
/usr/bin/ld: skipping incompatible /usr/lib/x86_64-linux-gnu/libc.so when searching for -lc 
/usr/bin/ld: skipping incompatible /usr/lib/x86_64-linux-gnu/libc.a when searching for -lc 
/usr/bin/ld: cannot find -lc 
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.7/libgcc_s.so when searching for -lgcc_s 
/usr/bin/ld: cannot find -lgcc_s 
collect2: error: ld returned 1 exit status 
make: *** [_vlfeat.so] Error 1 

इस पुस्तकालय को 64 बिट आर्किटेक्चर पर काम करने के लिए कोई समाधान? आदेश पंक्ति ध्वजों

32 बिट द्विआधारी के साथ बनाने के लिए

+7

तुम दोनों है '-m32' और' निर्दिष्ट -m64' स्थापित किया है। .. आपको कौनसा चाहिये? –

+0

मुझे यकीन नहीं है कि वे किसके लिए खड़े हैं क्योंकि मैं सी ++ के लिए नोब हूं। क्या आप उस पर थोड़ा सा व्याख्या कर सकते हैं? एफवाईआई, मैं 64 बिट उबंटू का उपयोग कर रहा हूं। –

+1

'-m32' 32-बिट कोड उत्पन्न करता है, और' -m64' 64-बिट कोड उत्पन्न करता है (यह आपके सिस्टम पर डिफ़ॉल्ट होना चाहिए)। आपको केवल उनमें से एक निर्दिष्ट करना चाहिए, यदि कोई हो। आप अपने सिस्टम पर 32-बिट या 64-बिट निष्पादन योग्य चला सकते हैं, लेकिन 32-बिट पुस्तकालयों के साथ 32-बिट निष्पादन योग्य लिंक और 64-बिट पुस्तकालयों के साथ 64-बिट निष्पादन योग्य लिंक चला सकते हैं। क्या आपने .o फ़ाइलों को उत्पन्न करने के लिए स्रोत कोड संकलित किया था, या वे कहीं और से आए थे? –

उत्तर

10

निकालें -m32, आप

sudo apt-get install gcc-multilib और sudo apt-get install ia32-libs-dev

+0

* "sudo apt-get gcc-multilib इंस्टॉल करें" * एक लिनक्स हैक है। क्या खिड़कियों के लिए ऐसा हैक है? (विंडोज 7 पर एक ही लिंकिंग समस्या के साथ फंस गया) – Fennekin

+3

'ई: पैकेज 'ia32-libs-dev' में कोई इंस्टॉलेशन उम्मीदवार नहीं है – user

+0

'sudo apt-get gcc-multilib इंस्टॉल करें' मेरे लिए डेबियन जेसी पर समस्या को हल करता है। – jitter

संबंधित मुद्दे