我們有些時候會在#if #ifndef 等預編譯命令里面看到_WIN32等定義的宏。但是有些宏定義,你即使通過Visual Studio右鍵的go to definitions 和go to decleration就是找不到宏定義的位置,其實是在vcproject,.sln工程文件的項目屬性里面就定義好了。因為在VS中時GUI界面的操作,所以容易找出來,但是Cmake下,換了一種創建工程文件的思維方式。初學者就會被迷惑了。
下圖就是VS中設置預處理器定義的界面:
在Cmake腳本中就用add_definitions命令來添加預處理器的宏定義
References:
http://www.cmake.org/pipermail/cmake/2011-June/044757.html
http://stackoverflow.com/questions/9639449/cmake-how-to-pass-preprocessor-macros
http://stackoverflow.com/questions/9017573/define-preprocessor-macro-through-cmake