跨平台C++開源代碼為適應各種編譯器的編譯,采用了兩種方式方面來適配。一種是makefile方式。以著名的空間數據格式解析庫gdal為例,它就是提供了makefile來供各種編譯器來編譯。gdal主要提供了微軟的VC編譯器和GNU GCC編譯器兩種格式的makefile,在gdal的源碼根目錄可以找到makefile.vc和GNUmakefile兩個makefile文件,其中makefile.vc為vc編譯器的makefile,GNUmakefile為GNU GCC編譯器的makefile。
另一種方式是使用CMake軟件。CMake軟件可以看作是根據源碼來構建各個IDE廠商的工程格式。CMake是一個開源軟件,CMake支持的部分IDE(編譯器)如下圖:
從上圖可以看出CMake可以支持很多IDE。CMake軟件的輸出目錄習慣是開源代碼根目錄下的cmake文件夾。
跨平台C++開源代碼一般至少支持makefile或CMake方式進行編譯,有些兩種都支持。如何判斷一個開源代碼支持哪些方式?一個粗淺的辦法是查看源碼根目錄下是否有以makefile命名的文件,如果有,很可能是支持makefile編譯的,如果源碼根目錄下有CMakeLists.txt,應該是支持CMake方式進行編譯。