Picproje Elektronik Sitesi

DERLEYİCİLER => Diğer Derleyiciler => KEIL => Konuyu başlatan: mfurkan7 - 06 Ocak 2014, 13:40:43

Başlık: Error: L6200E ne anlama geliyor?
Gönderen: mfurkan7 - 06 Ocak 2014, 13:40:43
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.
Başlık: Ynt: Error: L6200E ne anlama geliyor?
Gönderen: MC_Skywalker - 06 Ocak 2014, 13:47:22
Nezer durumla bende karşılaşmıştım .h dosylarının include etmememden kaynaklanıyordu.
Başlık: Ynt: Error: L6200E ne anlama geliyor?
Gönderen: mfurkan7 - 06 Ocak 2014, 14:06:33
Onları zaten ayarladım fakat hala hata almaktayım.
Başlık: Ynt: Error: L6200E ne anlama geliyor?
Gönderen: MC_Skywalker - 06 Ocak 2014, 14:11:32
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
Başlık: Ynt: Error: L6200E ne anlama geliyor?
Gönderen: micelow - 06 Ocak 2014, 14:15:56
buton.c den veya main.c den MC_Skywalker' ın belirttiği fonksiyonları siler yada yorum satırı yaparsan ilgili hataları tekrar vermicektir.
Başlık: Ynt: Error: L6200E ne anlama geliyor?
Gönderen: mfurkan7 - 06 Ocak 2014, 14:16:55
Onları denedim. Hata verenlerin isimlerinin hepsini tek tek değiştirdim defalarca fakat tekrardan aynı hatalar geliyor.
Başlık: Ynt: Error: L6200E ne anlama geliyor?
Gönderen: ercan_t - 06 Ocak 2014, 14:26:37
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



Başlık: Ynt: Error: L6200E ne anlama geliyor?
Gönderen: mfurkan7 - 06 Ocak 2014, 14:47:04
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.
Başlık: Ynt: Error: L6200E ne anlama geliyor?
Gönderen: ercan_t - 06 Ocak 2014, 14:51:53
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
Başlık: Ynt: Error: L6200E ne anlama geliyor?
Gönderen: mfurkan7 - 06 Ocak 2014, 14:53:50
Evet bende farklı isim verdim. Örneğin biri XXXX_H_ ise diğeri XXXY_H_ ama çalışmadı.
Başlık: Ynt: Error: L6200E ne anlama geliyor?
Gönderen: ercan_t - 06 Ocak 2014, 15:00:06
merhaba,
işlemleri denerken

clean targets
rebuilding all target files

işlemlerini yap obje olmadı oluşan objeleri elinle sil tekrar derleyip dene
Başlık: Ynt: Error: L6200E ne anlama geliyor?
Gönderen: mfurkan7 - 06 Ocak 2014, 15:05:26
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.
Başlık: Ynt: Error: L6200E ne anlama geliyor?
Gönderen: ercan_t - 06 Ocak 2014, 15:18:08
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



Başlık: Ynt: Error: L6200E ne anlama geliyor?
Gönderen: mfurkan7 - 06 Ocak 2014, 15:23:45
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

Başlık: Ynt: Error: L6200E ne anlama geliyor?
Gönderen: ercan_t - 06 Ocak 2014, 15:35:08
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
}



Başlık: Ynt: Error: L6200E ne anlama geliyor?
Gönderen: mfurkan7 - 06 Ocak 2014, 15:37:53
Hocam isterseniz dosyayı göndereyim. O kadar önemli bilgi yok içinde.
Başlık: Ynt: Error: L6200E ne anlama geliyor?
Gönderen: ercan_t - 06 Ocak 2014, 15:55:36
tamam gönder merakettim yav sorunu :)
Başlık: Ynt: Error: L6200E ne anlama geliyor?
Gönderen: mfurkan7 - 06 Ocak 2014, 16:08:50
http://dosya.co/bswiztgfj019/STM32F4-Discovery_FW_V1.1.0.rar.html (http://dosya.co/bswiztgfj019/STM32F4-Discovery_FW_V1.1.0.rar.html)  Buyurun hocam. 1,5 gündür bu sorunu çözmeye çalışıyorum. Çözebilirseniz süper olur  :)
Başlık: Ynt: Error: L6200E ne anlama geliyor?
Gönderen: ercan_t - 06 Ocak 2014, 16:26:29
merhaba,

hatalarını düzelttim kod sorunsuz derlendi,

değişken tanımlamaların sırası çok yanlış birde main.c icerisine ve başka klasörlere ... include "main.c" ... yazmışsın bu tanım cok yanlış reqursive tanımlama meydana getiriyor,

birazdan yükleyeceğim yanlışlarını kontrol edersin...

mesaj birleştirme:: 06 Ocak 2014, 16:28:59


kodları fazla incelemedim sadece hatayı hızlı düzeltmek için kodları değiştirdim.

http://dosya.co/236tpj7v8xc8/Project.rar.html (http://dosya.co/236tpj7v8xc8/Project.rar.html)
Başlık: Ynt: Error: L6200E ne anlama geliyor?
Gönderen: mfurkan7 - 06 Ocak 2014, 16:56:06
Hocam çok teşekkür ederim. Büyüksün valla  ;D

mesaj birleştirme:: 06 Ocak 2014, 17:33:20

hocam bu extern komutunun görevi nedir tam olarak? Bir de neden

typedef struct
{
    LEDAyarlari ledAyarlari[6];

}TAyarlar;


struct yapısı ile tanımlanmış bu kodu typedef ile tanımladık?
Başlık: Ynt: Error: L6200E ne anlama geliyor?
Gönderen: kimlenbu - 08 Mart 2014, 11:32:01
konuyu hortlatmak gibi olmasın ama çok teşekkür ederim, sorunum çözüldü. main.c'nin başındaki tanımlamalar kalabalık yapmasın diye main.h içine almıştım ama haliyle global değişken tanımlamaları da header dosyasına gitmiş. değişken ve struct tanımlamalarını main.c'ye alınca düzeldi :)