MPLAB C18 compiler "o" dosyasını oluşturuyor, hex'i oluşturmuyor.

Başlatan hamityanik, 01 Haziran 2011, 23:08:49

hamityanik

Merhaba arkadaşlar,

MPLAB'da C18 derleyicisini kullanarak bir c programını derlemeye çalışıyorum. Ancak MPLAB derleme esnasında "o" dosyasını oluşturuyor ama hex oluşturmuyor. Ne kadar uğraşsam da bir türlü yapamadım. Yadımlarınızı bekliyorum.

Derleme çıktısı şu şekilde:

----------------------------------------------------------------------
Release build of project `C:\Demo App\Demo App-C18.mcp' started.
Language tool versions: mpasmwin.exe v5.35, mplink.exe v4.35, mcc18.exe v3.35
Wed Jun 01 23:03:27 2011
----------------------------------------------------------------------
Executing: "C:\MCC18\bin\mcc18.exe" -p=18F4685 /i"." -I"C:\Microchip Solutions\Microchip\Include" -I"C:\MCC18\h" "Untitled.c" -fo="Untitled.o" -k -sco -Ou- -Ot- -Ob- -Op- -Or- -Od- -Opa-
C:\Demo App\Untitled.c:8:Warning [2066] type qualifier mismatch in assignment
----------------------------------------------------------------------
Release build of project `C:\Demo App\Demo App-C18.mcp' succeeded.
Language tool versions: mpasmwin.exe v5.35, mplink.exe v4.35, mcc18.exe v3.35
Wed Jun 01 23:03:28 2011
----------------------------------------------------------------------
BUILD SUCCEEDED

Tagli

Emin değilim ama bir ihtimal, ayarlar kısmında kütüphane derleme seçeneğini seçmiş olabilirsin. O zaman hex oluşturmaz.

Yukarıdaki menüden şurayı kontrol et:
Project > Build Options... > Project > MPASM/C17/C18 Suite Sekmesi > Build normal target işeretli olmalı.
Eğer Build library target işaretli ise .hex dosyasını oluşturmaz.
Gökçe Tağlıoğlu

hamityanik

"Build normal target" işaretli zaten. ".c" dosyasına sağ tuş tıklayıp "Compile" diyorum. Doğru mu yapıyorum?

iyildirim

Bu şekilde sadece bir dosyayı derlemiş olursunuz. Link aşaması ve hex üretme kısmı çalışmamış olur.

Project -> build seçmelisiniz.. Veya F10 (build) yada CTRL+F10 (build all) tuşlarını  da kullanabilirsiniz.





hamityanik

Test amaçlı yeni bir proje açtım. Yine HEX'i oluşturmuyor. Acaba Compiler'da mı bir problem var?

Clean: Deleting intermediary and output files.
Clean: Deleted file "C:\1\Untitled.o".
Clean: Deleted file "C:\1\1.cof".
Clean Warning: File "C:\1\1.hex" doesn't exist.
Clean: Deleted file "C:\1\1.map".
Clean: Done.
Executing: "C:\MCC18\bin\mcc18.exe" -p=18F4620 /i"C:\MCC18\h" "Untitled.c" -fo="Untitled.o" -k -sco -Ou- -Ot- -Ob- -Op- -Or- -Od- -Opa-
C:\1\Untitled.c:8:Warning [2066] type qualifier mismatch in assignment
Executing: "C:\MCC18\bin\mplink.exe" /p18F4620 /l"C:\MCC18\lib" "Untitled.o" /u_CRUNTIME /z__MPLAB_BUILD=1 /m"C:\1\1.map" /w /o"C:\1\1.cof"
MPLINK 4.35, Linker
Copyright (c) 1998-2010 Microchip Technology Inc.
Errors    : 0

Loaded C:\1\1.cof.

Tagli

Test projesini zipleyip paylaş, bir kontrol edelim. Tüm klasör içeriğini koy tabi, sadece .c dosyasını değil.
Gökçe Tağlıoğlu


Tagli

Oluşturuyor aslında :)

Project > Build Options... > Project > Directories sekmesinde combobox'ta Output Directory seçili iken C:\1 olarak ayarlanmış. Dosyaları buraya atıyor.
Gökçe Tağlıoğlu

hamityanik

Projenin ana klasoru orasi zaten. O klasoru bilerek ben secmistim. Ama oraya hex atmiyor bende. Bendeki compiler'da mi  problem var acaba? Siz hex'i olusturabildiniz sanirim?

Tagli

Evet. Ben zip dosyasını masaüstündeki bir klasöre açıp denemiştim. Önce hex'i göremedim, sonra C:\1 içine attığını farkettim. Dediğim yerdeki ayarlarda o kısmı silince, yani C:\1 kısmını Delete tuşuna basıp silince hex dosyasını proje klasörüne oluşturmaya başladı.

Bilgisayarda bir arama ile 1.hex dosyasını bulmayı bir dene. Belki oluşturuyordur bir yerlere...
Gökçe Tağlıoğlu

hamityanik

C18 Compiler'in hangi versiyonu var sizde? v3.35 ve ustu gerekiyor bana. Su an var bende ama hex olusturmuyor. PM'den benimle paylasabilirseniz cok memnun olurum. İnternette bulamadim bir turlu.

hamityanik

Alıntı yapılan: Tagli - 02 Haziran 2011, 10:11:31
Bilgisayarda bir arama ile 1.hex dosyasını bulmayı bir dene. Belki oluşturuyordur bir yerlere...

Onu denedim ama sonuc yok. :)

Tagli

C18'in v3.38 versiyonunu kullanıyorum. Kendi sitesinden çekmiş olduğum Lite yani sınırlı sürümü. MPLAB ise 8.70, yine kendi sitesinden çektim.
Gökçe Tağlıoğlu

hamityanik

Lite surumdeki sinirlandirma nedir peki? Etkilemeyecekse ben de o sekilde kullanayim.

Tagli

Optimizasyon sınırlaması var. Yani oluşan kod daha fazla RAM ve ROM alanı harcıyor, ve de daha düşük performans/hız ile çalışabiliyor. Bunun dışında bir sınırlama yok.
Gökçe Tağlıoğlu