ARM mikro denetleyici (SAM7) ve Yagarto toolchain kullanarak gömülü yazılım üzerinde çalışıyorum.gcc newlibc uygulamasının özel işlevlerini kullanmak için nasıl zorlayabilirim?
Kodumda şu anda bağlantılar libc.a. Ancak, kodumun zaten sahip olduğu yerleşik işlev memcpy özel bir uygulamasını kullanmak istiyorum.
ben GCC Manual belirtilen ancak bağlayıcı hala will aşağıdaki uyarı şikayet olarak -fno-yerleşik ve/veya -fno-yerleşik-memcpy kullanarak denedi:
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
doğru yolu nedir Belirli gcc yerleşik fonksiyonların özel uygulamalarını kullanmak için?
Düzenleme 1: Kullanmakta olduğunuz bağlantı komutunu ekleme. Aşağıdaki kodda Porject.a, tüm projenin nesne dosyaları ile oluşturulan bir arşiv dosyasıdır.
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
Ayrıca bu hatayı üreten linker komut satırını da ekleyin. – Clifford
@Clifford İstediğiniz bilgileri eklemek için orijinal gönderiyi düzenledim – maguirre