MinGW学习
MinGW32 和 MinGW-w64 区别
MinGW32先开发,只能编译32位程序;
MinGW-w64从MinGW32发展而来,支持编译64和32位位程序,同时可以进行交叉编译。
MinGW-w64类型:
x86_64: 支持在x64和x86上运行
i686: 支持在x86上运行
i386/i686/x86_64区别
i386 适用于intel和AMD所有32位的cpu,以及采用X86架构的32的cpu。
X86_64 适用于intel和AMD采用X86架构的64位cpu,兼容32位。
关于mingw-w64-x86_64:
生成64位库只要用默认的参数编译即可,而生成32位库则要用-m32参数编译.
对于mingw-w64-i686:默认生成32位程序
查看默认库的搜索路径
minGW 下面执行
ld --verbose | grep SEARCH_DIR | tr -s ' ;' \\012 |
如何指定某个库的路径
-llibraryfoo.o -lz bar.o 搜索库 z 在 foo.o 之后。
-Lsearchdir
–library-path=searchdir
使用环境变量设置附加库的路径
export LIBRARY_PATH |
Cygwin 和MinGW 的区别
Cygwin是运行于Windows平台的POSIX“子系统”,提供Windows下的类Unix环境,并提供将部分+Linux+应用“移植”到Windows平台的开发环境的一套软件。
MinGW,Minimalist GNU for Windows,用于开发原生(32位) Windows 应用的开发环境。它主要提供了针对 win32 应用的 GCC、GNU binutils 等工具,以及对等于 Windows SDK(的子集)的头文件和用于 MinGW 版本 linker 的库文件(so、a等,而不是 VC 的 lib)。
MinGW 是用于进行 Windows 应用开发的 GNU 工具链(开发环境),它的编译产物一般是原生 Windows 应用,虽然它本身不一定非要运行在 Windows 系统下(是的 MinGW 工具链也存在于 Linux、BSD 甚至 Cygwin 下)
MSYS 是用于辅助 Windows 版 MinGW 进行命令行开发的配套软件包,提供了部分 Unix 工具以使得 MinGW 的工具使用起来方便一些。如果不喜欢庞大的 Cygwin,而且使用不多,可以试试。不过喜欢完整体验、不在乎磁盘占用等等,还是推荐 Cygwin 而不是 MSYS。
ubuntu16.04安装MinGW32
直接安装会报错 Unable to locate package mingw32
解决办法如下:
sudo gedit /etc/apt/sources.list |
获取代码行数等统计数据
数据库-Berkeley DB
bitcoin 使用了 4.8 版本,所以这里大致了解一下。
Berkeley DB(BDB)是一个高效的嵌入式数据库编程库,C语言、C++、Java、Perl、Python、Tcl以及其他很多语言都有其对应的API。Berkeley DB可以保存任意类型的键/值对(Key/Value Pair),而且可以为一个键保存多个数据。Berkeley DB支持让数千的并发线程同时操作数据库,支持最大256TB的数据,广泛用于各种操作系统,其中包括大多数类Unix操作系统、Windows操作系统以及实时操作系统。
Berkeley DB以拥有比Microsoft SQL Server和Oracle数据库等更简单的体系结构而著称。例如,它不支持网络访问—程序通过进程内的API访问数据库。
Berkeley DB不支持SQL或者其他的数据库查询语言,不支持表结构和数据列。
访问数据库的程序自主决定数据如何储存在记录里,Berkeley DB不对记录里的数据进行任何包装。记录和它的键都可以达到4G字节的长度。
尽管架构很简单,Berkeley DB却支持很多高级的数据库特性,比如ACID 数据库事务处理,细粒度锁,XA接口,热备份以及同步复制。
全部985+211大学名单
这些都是敲门砖

