最近在研究google的flatbuffers,因此涉及到使用flatc来讲IDL描述的数据结构编译成flatbuffers能够使用的fbs结构的文件。由于是在MAC OS下面,因此最初尝试使用XCode来编译,但是这个玩意儿特别大,足足有4G+,而且苹果也特别操蛋,在中国没有服务器,因此下载不仅特别慢而且还很容易失败,因此果断放弃而采用cmake来进行编译。
cmake其实是一个特别好的东西,它虽然不直接为你构建出最终的软件,但是能够为你生成各种指定的标准构建文件,因此为软件的跨平台编译提供了很大的便利。flatbuffers的源文件中已经为我们提供了cmake的构建文件CMakeLists.txt,因此我们可以借助它先得到makefile文件,然后再直接Make即可得到flatc。具体步骤如下:
- 下载flatbuffers的源码,解压(例如解压到~/flatbuffer/flatbuffers-1.3.0)。
- 下载cmake,这里直接下载的有UI界面的app文件,安装。
- 启动cmake,指定源码目录为~/flatbuffer/flatbuffers-1.3.0,指定生成的对象为Unix makefile,以便cmake根据CMakeLists.txt文件生成对应的makefile文件,makefile的生成目录自由指定(例如:~/flatbuffer/flatbuffers-1.3.0/flatcBuild/)。
- 在对应的~/flatbuffer/flatbuffers-1.3.0/flatcBuild/目录下可以看到生成的makefile文件,直接执行make命令即可得到flatc。
- enjoy~