2011-10-07 13 views
7

मैं 64 बिट मैक पर svdlibc संकलित करने की कोशिश कर रहा हूं। मेक फ़ाइल चलाना त्रुटि संदेश देता है:क्या मैक (64 बिट) पर svdlibc संकलित करना संभव है?

main.c:1: error: CPU you selected does not support x86-64 instruction set 
main.c:1: error: CPU you selected does not support x86-64 instruction set 
make: *** [main.o] Error 1 

जो अधिक समझ में नहीं आता है।

मेकअप फ़ाइल है:

# Linux or Windows: 
CC = gcc -Wall -O4 -march=i486 
# CC = icc -w1 -O3 -march=i486 

# Macintosh: 
ifeq ($(HOSTTYPE),powerpc) 
    CC = cc -pipe -O3 -Wall -fno-common -arch ppc 
endif 

LIBS=-lm 
OBJ=svdlib.o svdutil.o las2.o 

svd: Makefile main.o libsvd.a 
    ${CC} ${CFLAGS} -o svd main.o libsvd.a ${LIBS} 
    mv -f [email protected] ${HOSTTYPE}/[email protected] 
    ln -s ${HOSTTYPE}/[email protected] [email protected] 
main.o: Makefile main.c svdlib.h 
    ${CC} ${CFLAGS} -c main.c 

libsvd.a: ${HOSTTYPE} ${OBJ} 
    rm -f [email protected] ${HOSTTYPE}/[email protected] 
    ar cr [email protected] ${OBJ} 
    ranlib [email protected] 
mv -f [email protected] ${HOSTTYPE}/[email protected] 
    ln -s ${HOSTTYPE}/[email protected] [email protected] 
svdlib.o: Makefile svdlib.h svdlib.c 
    ${CC} ${CFLAGS} -c svdlib.c 
svdutil.o: Makefile svdutil.c svdutil.h 
    ${CC} ${CFLAGS} -c svdutil.c 
las2.o: Makefile las2.c svdlib.h svdutil.h 
    ${CC} ${CFLAGS} -c las2.c 
clean: 
    rm *.o 

$(HOSTTYPE): 
    if test ! -d $(HOSTTYPE); \ 
    then mkdir $(HOSTTYPE); fi 

मेकअप फ़ाइल का संपादन मार्च झंडा संकलन आगे बढ़ना की सुविधा देता है को बदलने के लिए लेकिन जाहिरा तौर पर जोड़ने के साथ विफल:

ld: lto: could not merge in main.o because Invalid ALLOCA record for 
architecture x86_64 

किसी को भी यह किया गया है? या क्या एक अलग एसवीडी लाइब्रेरी है जिसका मुझे उपयोग करना चाहिए? (बड़े स्पैस मैट्रिस के लिए?)

संपादित करें: पॉर्नएएल को समस्या मिली है। मेकफ़ाइल में शीर्ष पंक्ति को बदलना:

CC = gcc -Wall -O3 -march=x86-64 

संकलन कार्य। अभी तक परिणामों का परीक्षण नहीं किया है, लेकिन बहुत ही आशाजनक लग रहा है।

उत्तर

6

-O4 किसी कारण से इसका कारण बनता है। इसके बजाय -O3 का उपयोग करें।

+0

मुझे विश्वास नहीं है। ऐसा लगता है कि चाल चल रही है। –

0

आप बंदरगाह (http://www.macports.org/) के साथ की कोशिश कर सकते ऐसा लगता है यह availablee है:

svdlibc @ 1.34 (गणित, विज्ञान) SVDLIBC विलक्षण मूल्य अपघटन प्रदर्शन करने के लिए

मूल रूप से आप macports स्थापित करूँगा एक सी पुस्तकालय है फिर, सुडो पोर्ट svdlibc स्थापित करें।

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