मैं एआरएम माइक्रोकंट्रोलर (एसएएम 7) के लिए एम्बेडेड सॉफ़्टवेयर पर काम कर रहा हूं और यागार्टो टूलचैन का उपयोग कर रहा हूं।मैं नए एलआईबीसी लागू कार्यों के कस्टम कार्यान्वयन का उपयोग करने के लिए जीसीसी को कैसे मजबूर कर सकता हूं?
मेरा कोड वर्तमान में libc.a से लिंक करता है। हालांकि मैं बिल्टिन फ़ंक्शन memcpy का एक कस्टम कार्यान्वयन का उपयोग करना चाहता हूं जो मेरे कोड में पहले से है।
मैं GCC Manual में निर्दिष्ट लेकिन लिंकर अभी भी शिकायत निम्नलिखित होगा चेतावनी के रूप में -fno-निर्मित और/या -fno-निर्मित-memcpy उपयोग करने की कोशिश की है:
contiki-crazy-horse.a(flashd_efc.o): In function `memcpy':
C:\Users\Melvin\GitRepo\projects\Amatis_Project\SAM7_Contiki\examples\er-rest-example/../../cpu/arm//at91sam7s-x/./flashd_efc.c:669: multiple definition of `memcpy'
c:/toolchains/yagarto/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib\libc.a(lib_a-memcpy.o):C:\msys\1.0\home\yagarto\newlib-build\arm-none-eabi\newlib\libc\string/../../../../../newlib-1.19.0/newlib/libc/string/memcpy.c:78: first defined here
collect2: ld returned 1 exit status
make: *** [rest-server-example-nosyms.crazy-horse] Error 1
../../cpu/arm/at91sam7s-x/Makefile.at91sam7s-x:181: recipe for target `rest-server-example-nosyms.crazy-horse' failed
क्या सही तरीका है कुछ जीसीसी अंतर्निहित कार्यों के कस्टम कार्यान्वयन का उपयोग करने के लिए?
संपादित करें 1: लिंकिंग कमांड जोड़ रहा हूं जिसका मैं उपयोग कर रहा हूं। नीचे दिए गए कोड में Porject.a एक प्रोजेक्ट फ़ाइल है जो सभी प्रोजेक्ट की ऑब्जेक्ट फ़ाइलों के साथ बनाई गई है।
CC = arm-none-eabi-gcc
CFLAGSNO = -I. -I$(CONTIKI)/core -I$(CONTIKI_CPU) -I$(CONTIKI_CPU)/loader \
-I$(CONTIKI_CPU)/dbg-io \
-I$(CONTIKI)/platform/$(TARGET) \
${addprefix -I,$(APPDIRS)} \
-DWITH_UIP -DWITH_ASCII -DMCK=$(MCK) \
-Wall $(ARCH_FLAGS) -g -D SUBTARGET=$(SUBTARGET)
CFLAGS += $(CFLAGSNO) -O -DRUN_AS_SYSTEM -DROM_RUN -ffunction-sections
LDFLAGS += -L $(CONTIKI_CPU) --verbose -T $(LINKERSCRIPT) -nostartfiles -Wl,-Map,$(TARGET).map
$(CC) $(LDFLAGS) $(CFLAGS) -nostartfiles -o project.elf -lc Project.a
लिंकर कमांड लाइन भी शामिल करें जो इस त्रुटि को उत्पन्न करता है। – Clifford
@ क्लाइफोर्ड I ने आपके द्वारा अनुरोधित जानकारी को जोड़ने के लिए मूल पोस्ट संपादित किया – maguirre