PDA

Tam Sürümünü Görmek İçin : .hpp


ankakusu
03/06/2007, 16:58
Merhaba,

Merhaba arkadaşlar, ben .hpp diye bir uzantıya rastladım.

Araştırdığıma göre bu .h uzantısının cpp için olan versiyonu içinmiş. Ben de normal bir header dosyasını yani .h uzantılı bir dosyayı .hpp diye değiştirip de çalıştırmaya çalıştım ama yine linker hatası verdi.

verdiği hata şu:

/usr/bin/ld:trace.hpp: file format not recognized; treating as linker script
/usr/bin/ld:trace.hpp:1: syntax error
collect2: ld çıkış durumu 1 ile döndü

kodu şu şekilde derledim:

sh-3.1$ g++ trace.hpp trace.cpp -o obj

aslında .h diye çalıştırdığım zaman oldu ama .hpp uzantısı ne şekilde çalışır bir bilgisi olan var mı acaba?

Teşekkürler...
Kolay gelsin...


acehreli
03/06/2007, 18:46
.hpp uzantisi, C++ baslik dosyalarini belirlemek icin kullanilir. Ama buna gerek yoktur, cunku #include ile kullanilan baslik dosyalarinin uzantilari bizim istedigimiz herhangi bir sey de olabilir.

Cunku bu dosyalari aslinda ne derleyici ne de baglayici gorur. Onlar #include edildiklerinde, onlarin icindeki butun metin, onislemci (preprocessor) tarafindan butunuyle kodda #include edildikleri noktaya yerlestirilir. (Makro acilimlari gibi baska onislemci islemleri de yapilir tabii.)

Uzantinin hicbir onemi olmadigi halde, yalnizca C++ ile derlendiginde calisabilecek olan dosyalara bazi insanlar .hpp uzantisini verirler; cunku ornegin yanlislikla bir C derlemesinde #include edildiklerinde kesinlikle hata olur... Ornegin C derleyicisi 'class' sozcugunu bilmez.

Benim calistigim hicbir firmada C++ basliklarina .hpp gibi ozel uzantilar verilmedi. Cunku zaten kimse basliklari oyle rastgele olarak #include etmez. :)

Komut satirinda .h dosyasi yazmanin anlami, o dosyayi da programla baglamak anlamina geliyor olmali. .h'nin eger varsa, bu kullanimdaki ozel anlamini bilmiyorum.

Ama normalde .h veya .hpp dosyalari #include edilirler.

Ali