मैं 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
संकलन कार्य। अभी तक परिणामों का परीक्षण नहीं किया है, लेकिन बहुत ही आशाजनक लग रहा है।
मुझे विश्वास नहीं है। ऐसा लगता है कि चाल चल रही है। –