CMake在Windows下怎么学习使用
github上还有许多外国官方提供的第三方库的源代码中,通常使用CMake来构建项目。这个CMake是什么呢,以前我也雾里看花,今天总算是摸出一点门路了。我在《经常利用文档与搜索引擎其实未必是好事》里说过,我以前总喜欢认为官方提供的说法是最全面的、最完整的,所以我也不喜欢使用某些人研究或我自己研究出来一些小窍门来解决问题,总是认为官方的才是全面、完整的。事实上当我摆脱了这种想法后,反而会让自己遇
github上还有许多外国官方提供的第三方库的源代码中,通常使用CMake来构建项目。这个CMake是什么呢,以前我也雾里看花,今天总算是摸出一点门路了。
我在《经常利用文档与搜索引擎其实未必是好事》里说过,我以前总喜欢认为官方提供的说法是最全面的、最完整的,所以我也不喜欢使用某些人研究或我自己研究出来一些小窍门来解决问题,总是认为官方的才是全面、完整的。事实上当我摆脱了这种想法后,反而会让自己遇到问题更灵活快速地解决。
CMake的主要作用是根据源代码构建跨平台的项目,节约人工重复的机械劳动,从而提高工程效率。(而不是发布几十个不同版本、不同环境下的项目工程)官方通常提供的CMake用法就是教你怎么敲几条命令执行,实际上因为Unix-like系统天然的便捷性,官方给的做法大多数都只符合Unix-like系统,因此在Windows系统下的构建并不是那么简单的,起码很难做到一蹴而就,多数情况下Windows系统的CMake命令都会报错。要想知道错误的原因,以往我的做法是百度+谷歌,因为我自己实在不懂CMake语法,我想我也暂时没那个时间去研究CMake的语法。后来经过大量的学习过程,我突然领悟到,学习也是符合80/20原则的,要想掌握一个东西80%的东西,你只需要付出20%的代价。(为此我写了一篇专门的文章《用80/20法则迅速拓展程序员学习的广度》)这样,我找到了一本很简单的《CMake Practice》,并且也没有完全看完,只看了10多页,然后我就看懂了Selene(一个C++绑定到Lua的第三方库)的CMakeLists文件,因为CMake命令本身是开放可见的,所以出错了我就找到发出错误信息的那条命令,然后思考一下为什么会这样,加上稍微的百度/谷歌搜索,再对CMakeLists文件略作修改就行了。
我原以为人是很智能的生物,那么大神们写出来的东西也是相当智能的,然后不太相信要手动修改CMakeLists这种这么麻烦的操作,所以以前CMake出错了我只会怀疑自己的操作不对或是系统环境有问题,出错了也只能跟着官方的教程一遍一遍地认真操作,从不怀疑大神写的东西也可能是不完整的。实际上,程序员这种生物还是和所有人一样都有漏洞,程序还是在帮助人们代替重复的劳动,还没有达到代替人们进行的思考并自我解决的程度(不然Windows系统这么多大神写的东西也怎么会有漏洞)。作为一只程序猿,虽然前人走过的路值得我们学习很久很久,但也是要多多思考才行。毕竟,起码目前而言,图灵机还是死的,人才是活的。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)