Error: L6200E ne anlama geliyor?

Başlatan mfurkan7, 06 Ocak 2014, 13:40:43

mfurkan7

Merhabalar,
.\IO_Toggle\IO_Toggle.axf: Error: L6200E: Symbol Config multiply defined (by buton.o and main.o).
.\IO_Toggle\IO_Toggle.axf: Error: L6200E: Symbol ledDizisi multiply defined (by buton.o and main.o).
.\IO_Toggle\IO_Toggle.axf: Error: L6200E: Symbol GecikmeSuresi multiply defined (by buton.o and main.o).
.\IO_Toggle\IO_Toggle.axf: Error: L6200E: Symbol LED_Config multiply defined (by buton.o and main.o).
Not enough information to list image symbols.
Not enough information to list the image map.

Bu tarz da hatalar alıyorum. Ama kodlarda hata yapmadığımdan eminim. Problem ne olmuş olabilir. Yardımcı olursanız sevinirim. Teşekkürler.

MC_Skywalker

Nezer durumla bende karşılaşmıştım .h dosylarının include etmememden kaynaklanıyordu.

mfurkan7

Onları zaten ayarladım fakat hala hata almaktayım.

MC_Skywalker

Alıntı Yap
Config
ledDizisi
GecikmeSuresi
LED_Config

birden fazla tanımlanmış, Hem buton.c de hemde main.c de aynı iselameri kullanmışsın.  bir kontrol edersen iyi olur birde tanımlamada "Config" demişsin bunu başka bir isimle değişmende faydalı olur "Konfig" gibi

micelow

buton.c den veya main.c den MC_Skywalker' ın belirttiği fonksiyonları siler yada yorum satırı yaparsan ilgili hataları tekrar vermicektir.
"Bir tek şeye ihtiyacımız var çalışkan olmak."

mfurkan7

Onları denedim. Hata verenlerin isimlerinin hepsini tek tek değiştirdim defalarca fakat tekrardan aynı hatalar geliyor.

ercan_t

merhaba,

c de başka source kod (.c) kullanırken her zaman header file (#include "deneme.h")olarak cağırman gerekiyor. deneme.c içinde de #include "deneme.h olmalı

ayrıca diğer c file larında cağırınca redefined ve multiply defined  ları önlemek içinde her heder file içinde aşağıdaki bloğun içince yazılması gereklidir ve headerlar içindeki XXXX_H_ adı diğerlerinden farklı olmalıdır.

belki bu işini görür kolay gelsin...


#ifndef XXXX_H_
#define XXXX_H_

void delay_msx(int dl);
...
..



#endif




mfurkan7

Bende main.c ve butonica.c diye iki c dosyası var. Onların ikisi içinde ayrı ayrı Header yaptım. Projeme ekledim ve .c kod dosyalarına #include ettim fakat tekrardan aynı hataları aldım. Siz demeden önce Genel bir.h dosyası oluşturmuştum. İki .c kod dosyasının tanımlamalarını da buraya eklemiştim. O da olmadı. Hala sorunun çözümünü gerçekleşmedi ne yazıkki.

ercan_t

merhaba

her .h dosyasına aşağadakini ekleyerek dene birde;
... kısımlarına kodunu yaz. XXX_H tanınmlarınıda her .h file için farklı ver örneğinm XXX1_H,  XXX2_H ... gibi


#ifndef XXXX_H_
#define XXXX_H_

...
..



#endif

mfurkan7

Evet bende farklı isim verdim. Örneğin biri XXXX_H_ ise diğeri XXXY_H_ ama çalışmadı.

ercan_t

merhaba,
işlemleri denerken

clean targets
rebuilding all target files

işlemlerini yap obje olmadı oluşan objeleri elinle sil tekrar derleyip dene

mfurkan7

Dediğiniz işlemleri yaptım ama yine aynı problemi aldım. Birde olmadı oluşan objeleri elinle sil tekrar derleyip dene Bu kısmı anlayamadım hocam.

ercan_t

merhaba,

hatanı buldum bende de aynısını verdi :)


.h header ların icerisine değişken tanımlayamazsın...

.c dosyalarına tanımlayacaksın. headerdada extern ekleyerek olarak cağırabilirsin.

not: benim bildiğim headerlar sadece prototip ve adres yolu gösterilmesi için kullanılır.

headera  int a; diye değişken tanımladığımda aldığım hata:
linking...
.\Flash\Blinky.axf: Error: L6200E: Symbol deneme multiply defined (by blinky.o and led.o).
Not enough information to list the image map.
Finished: 1 information, 0 warning and 1 error messages.
".\Flash\Blinky.axf" - 1 Error(s), 0 Warning(s).
Target not created




mfurkan7

Hocam benim headerlarda değişken tanımlaması yoktu  :(

#ifndef XXXX_H_
#define XXXX_H_

void GPIOButonAyarlari(void);



#endif



#ifndef XXXY_H_
#define XXXY_H_

void LED_Ayarlari(void);
void GecikmeSuresi(u32 sayici);

#endif

ercan_t

kod senaryosu aşağıdaki şekilde mi?



XXXX.h içinde >>GPIOButonAyarlari header tanımlı
**********************************
XXXX.c
içinde
include "XXXX.h " ekledin
GPIOButonAyarlari fonskiyonu tanımlı
**********************************
XXXY.h içinde >>  LED_Ayarlari GecikmeSuresi header tanımlı
**********************************
XXXY.c
içinde
include "XXXY.h " ekledin
LED_Ayarlari GecikmeSuresi fanksiyonu tanımlı
**********************************

main c içinde;
include "XXXX.h "
include "XXXY.h "

main
{
  LED_Ayarlari() ,GPIOButonAyarlari () GecikmeSuresi ()... kullanıyorsun
}