18 Apr 2016
本文摘自阮一峰的网络日志: 理查德·汉明《你和你的研究》
你和你的研究(精简版)
You and Your Research
作者:理查德·汉明(Richard Hamming)
译者:未知
时间:1986年3月7日
我演讲的题目是”你和你的研究”。我要谈的不是普通的研究,而是重大的研究,就是相当诺贝尔奖那一级别的研究。比如,相对论,香农的信息论,以及其他杰出的理论—-这就是我要讲的。
1945年,我进入洛斯阿拉莫斯国家实验室,负责计算机方面的事,因此见过费曼、费米、奥本海默等大科学家。我一直问自己这样的问题: “为什么他们做出了这样的成果?”和”我和他们的差别是什么” 。我读了传记、自传,去问他们本人:”你是怎么干起来这样的事的?” 我试着搞清原因,这就是今天要谈的内容。
为什么这个话题重要?因为你只有一次生命。即使你相信来世,那也没关系,为什么不在今生就做一些重大的事呢。
...
阅读全文 ...
11 Apr 2016
前言
这篇文章分享一下CMake中函数:function, 和宏:macro的使用。本文先从二者区别说起,由于二者区别很小,所以后文就仅对函数的用法进行讨论,因为函数有作用域的概念,适用范围更广。后文分享一个很实用的递归函数用于包含指定目录的所有子目录。
CMake中function和macro的区别
从其官方文档的描述并不会看出二者有什么大的区别,除了在function的定义中提到了Scope的概念。
下面以StackOverflow上的一个例子来直观的了解一下二者的区别:
set ( var "ABC" )
macro ( Moo arg )
message ( "arg = ${arg}" )
set ( arg "abc" )
message ( "# After change the value of arg." )
message ( "arg = ${arg}" )
endmacro ()
message ( "=== Call macro ===" )
Moo ( $ { var })
function ( Foo arg )
message ( "arg = ${arg}" )
set ( arg "abc" )
message ( "# After change the value of arg." )
message ( "arg = ${arg}" )
endfunction ()
message ( "=== Call function ===" )
Foo ( $ { var })
输出结果是:
...
阅读全文 ...
10 Apr 2016
前言
前面的文章介绍了一个最简单的CMake工程,这篇文章将介绍一个稍微复杂一些的CMake工程,结合这个工程总结一下在组织一个C/C++工程时最为常用的一些CMake命令和变量。对于涉及到的命令和变量,介绍的原则是点到即止,先仅需掌握基本用法即可,让工程跑起来。
上一篇文章中那个最简单的CMake Hello World工程,在其CMake脚本文件CMakeLists.txt中,仅有一句话:
add_executable ( hello hello . cpp )
这里面的
add_executable
就是一个CMake命令,它的作用是添加一个可执行文件构建目标。
下面从一个C++应用程序的编译过程为脉络对涉及到的命令和变量进行说明。
...
阅读全文 ...
05 Apr 2016
前言
本文介绍了如何使用CMake来构建一个Hello World的C++工程.
...
阅读全文 ...