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.
Nezer durumla bende karşılaşmıştım .h dosylarının include etmememden kaynaklanıyordu.
Onları zaten ayarladım fakat hala hata almaktayım.
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
buton.c den veya main.c den MC_Skywalker' ın belirttiği fonksiyonları siler yada yorum satırı yaparsan ilgili hataları tekrar vermicektir.
Onları denedim. Hata verenlerin isimlerinin hepsini tek tek değiştirdim defalarca fakat tekrardan aynı hatalar geliyor.
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
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.
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
Evet bende farklı isim verdim. Örneğin biri XXXX_H_ ise diğeri XXXY_H_ ama çalışmadı.
merhaba,
işlemleri denerken
clean targets
rebuilding all target files
işlemlerini yap obje olmadı oluşan objeleri elinle sil tekrar derleyip dene
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.
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
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
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
}
Hocam isterseniz dosyayı göndereyim. O kadar önemli bilgi yok içinde.
tamam gönder merakettim yav sorunu :)
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 :)
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)
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?
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 :)