Gönderen Konu: lcc-win32'de include problemi  (Okunma sayısı 7531 defa)

lcc-win32'de include problemi

« : 16.03.2006 00:08:14 »
Hızlı düğmeleri aç

anesthetic

İleti: 403

Çevrimdışı
  • ****
  • Sr. Member
    • Profili Görüntüle
    • http://resident.tr-demoscene.info/
şimdi ben projeyi hem vc++ hem de lcc-win32 ile derlemek istiyorum. Ama iki derleyicinin #include "dosya" tipinde directiveleri anlama yöntemleri farklı.

Örneğin şöyle bir dizin yapısı olsun.
source.c
defdef.h
defdefex.h

Source.c'den def.h'ı, def.h'tan da defex.h'ı include etmek istiyorum.

VC ile source.c içinde:
#include "defdef.h"
diyorum
def içinde de:
#include "defex.h"

diyorum ve sorunsuz çalışıyor.

lcc-win32 ile source.c içinden def.h'ı ekleme yöntemim aynı ama def.h içinde
#include "defdefex.h"
demeliyim, çünkü lcc pathleri o an okuduğu dosyaya göre değil de derlensin diye verdiğiniz dosyaya göre belirliyor (bu durumda source.c'ye göre)

Bu durumda iki seçeneğim var, ya tüm dosyaları aynı dizine koyacağım ya da #ifdef __LCC__ filan kullanarak iki farklı include tipi vereceğim. Ama hem düzinelerce dosya olduğu için hem de her seferinde iki farklı path belirtmek istemediğimden ikisi de cazip gelmiyor.

Aranızda böyle bir sorunla karşılaşıp lcc'ye durumu anlatabilmiş olan var mı? Derleyici seçeneklerinden baktım öyle bir şey göremedim. Google'da aradım bu problemden bahseden var mı diye yine bulamadım.

Bu yol imkansız ise VC'ye, pathleri lcc usülü anlaması için bir şey yapabilir miyim?

lcc-win32'de include problemi

« Yanıtla #1 : 16.03.2006 00:35:06 »
Hızlı düğmeleri aç

skate

İleti: 5.245

A Sinner Scener
Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.akaydin.com/
Environment Variable kullanabilirsin. Örneğin Crystal Space engine'ini "CRYSTAL" diye bir Env. Var. tanımlamadan compile edemiyorsun. Tahmin ettiğim kadarıyla seninle aynı derdi paylaştıkları için bu şekilde çözmüşler. Bence de güzel bir çözüm değil ama önrekleri de olduğu için bunu kullanmanı önerebilirim.

lcc-win32'de include problemi

« Yanıtla #2 : 16.03.2006 01:20:22 »
Hızlı düğmeleri aç

nightlord

İleti: 1.085

Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.nightnetwork.org
butun includelari bir yere toplamak istemiyorsan compile satirlarina headerlarin durdugu degisik include directorylerini optionlarla verebilirsin. lcc ve vc deki option ne bilmiyorum ama gcc de msela

g++ -c -o hede.o hede.cpp -I$(ROOT)/def -I$(ROOT)/baskadef

cpp dosyalari icinden de hep #include "hedele.h" dersin.

tabii bu tek basina anlamsiz gorunmekle beraber makefile kullandigin zaman cok otomatize edilebilir. Netekim $(INCLUDES) falan gibi bi makefile degiskeni icine directoryleri toplamak da mumkun.

hatta bir suru modul halinde organize ettigin bi source treeyi her modulun bi makefile'i olacak ve her birinin makefile'i icinde ihtiyac duydugu modul adlari gececek sekilde duzenleyip, biraz makefile magic ile beraber butun compilation'i os'tan ve compilerdan bagimsiz hale getirebilirsin.

lcc-win32'de include problemi

« Yanıtla #3 : 16.03.2006 23:37:01 »
Hızlı düğmeleri aç

anesthetic

İleti: 403

Çevrimdışı
  • ****
  • Sr. Member
    • Profili Görüntüle
    • http://resident.tr-demoscene.info/
evet include directorylerini derleyiciye vermek sorunu çözdü. diğer yolları denemeye gerek kalmadı. ikinize de teşekkürler.