Makroları #include
yönergesinde nasıl kullanacağım konusunda kafam karıştı.#include yönergesinde makro nasıl kullanılır?
#include "../../../../GlobalDefintions.h"
#include "../../../../lib/libc++/" ARCH_FAMILY_S "/" ARCH_S "/stkl/printkc/printkc.h"
GlobalDefintions.h: Bunu yaptık
#ifndef _GlobalDefintions_
#define _GlobalDefintions_
/*Architecture Information Start*/
#define ARCH i386
#define ARCH_FAMILY x86
#define ARCH_S "i386"
#define ARCH_FAMILY_S "x86"
/*Architecture Information End*/
#endif /*_GlobalDefintions_*/
ama bu beni ne verir şudur:
kernel.c++:24:88: fatal error: ../../../../lib/libc++/: No such file or directory #include "../../../../lib/libc++/" ARCH_FAMILY_S "/" ARCH_S "/stkl/printkc/printkc.h"başarıyla
ARCH_FAMILY_S
eklemek için bir yolu var mı ve
ARCH_S
#include
yönerge dizgemde?
Genellikle bu şeyler derleyiciye bağlıdır ve çok kırılgandır. Bunun yerine, derleyicinin üstbilgisi yoluyla içerilecek başlıkların seçimini yol seçeneğini ve/veya ortam değişkenini kontrol edin. Örneğin. G ++ için CPATH ve Visual C++ için "INCLUDE". –
Birleştirme için bir birleştirme makrosu tanımlayabilirsiniz. Ama yine de derleyiciye bağlı. Makroları kullanma yönündeki genel yaklaşımın ungood olduğunu fark edinceye kadar bununla gerçekten uğraştığımı hatırlıyorum. –
Şuna bir bakın: http://stackoverflow.com/questions/9096201/concatenate-string-in-c-include-filename – n3m4nja