define
宏作平臺判斷(有潔癖呀~~~)os/linux
和 os/win
.h
文件加入判斷宏//file: public.h #ifdef WIN32 # include "os/windows/public.h" #else # include "os/linux/public.h" #endif //WIN32
#include "public.h"
使用的編譯構建系統如何來識別這些編譯哪一個目錄下的文件,在連接的時候如何選擇庫linux
經過宏來區分c++
ifdef WIN32 SOURCES += $(wildcard os/win/*.cpp) else SOURCES += $(wildcard os/linux/*.cpp) endif
cmake經過邏輯語句和預約義變量來斷定windows
if(WIN32) aux_source_directory(os/win SOURCES) else(APPLE) aux_source_directory(os/mac SOURCES) else(UNIX) aux_source_directory(os/linux SOURCES) endif(WIN32)
qt的.pro
文件支持直接以debug
!unix { SOURCES += comm.cpp } win32:debug { TARGET = client_debug.exe } win32 | macx { HEADERS += debug.h } linux-g++ { CONFIGS += c++11 }
的方式來定義跨平臺代碼。unix