define/global define

在上面這段code,裡面使用了boost spirit unicode char_class,在預設情況下,如果沒有#define BOOST_SPIRIT_UNICODE 是compile不過的

如果發現在include前面無論如何define都還是找不到定義的話(qi::unicode),要先檢查是否在include前已經有其他include,導致在一開始include因為還未define而沒有include unicode。

這個比較常發生在cpp include B前又include其他header A,在include A裡已經也include B 就會導致這個現象,這時候除了注意include順序問題,也可以透過compile flag設定global define來解決(g++: -D , -D如果沒指定define值時,預設為1)

This entry was posted in Library. Bookmark the permalink.

Leave a Reply