6 minute read

Reference

Libraries

GMP

GMP大数库是GNU项目的一部分,诞生于1991年。作为一个任意精度的大整数运算库,它包括了任意精度的整数、浮点数的各种基本运算操作。它是一个C语言的库,但是官方提供了C++的包装类,主要的应用方向是密码学、网络安全、代数系统、计算科学等。GMP库的运行速度非常快,它的官方网站上称自己为地球上最快的大数库,但是GMP库所提供的只是数学运算功能,并没有密码学相关的高级功能。

Miracl

Miracl库是Shamus Software Ltd开发的一个大数库,它的使用许可针对教育科学研究或者非商业目的的应用是免费的。它是一个C语言的库,同时提供了几个较为简单的c++包装类。在功能上它不但提供了高精度的大整数和分数的各种数学运算操作而且提供了很多密码学算法中的功能模块,如SHA、AES、DSA等中的一些底层操作。最为特别的是它还提供了很多椭圆曲线密码体制中的底层功能模块。由于Miracl库的内部实现采用了很多的汇编代码,故运行速度也非常快。

Crypto++

Crypto++库是一个开源项目。由于它是一个纯C++实现的库,所以应用非常的方便,库的结构清晰,文档也很健全。Crypto++库提供了很多密码学算法的实现。

OpenSSL

OpenSSL是一个开放源代码的实现了SSL及相关加密技术的软件包,由加拿大的Eric Yang等发起编写的。它可以实现消息摘要、文件的加密和解密、数字证书、数字签名和随机数字等。

libcstl

Windows C++

Visual C++参考

需要整理的

Linux C++

Windows/Linux剪不断理还乱

C++近场通讯开发

Dev-C++

CMake

XMake

GDB

包管理器

一点经验教训

C/C++由于历史原因,编译,构建难度相对于目前主流的其他语言如Java、Python、Go等要大的多,不同操作系统平台,不同编译工具差别很大,且没有一个完美的包管理工具,为了少花时间到环境配置上,推荐选型如下:

  • 如果是Windows平台,且基本没有依赖,建议配套CLION+CMAKE+GCC(MinGW);
  • 如果是Windows平台,且依赖较多,比如Gtest,OpenSSL,建议配套VS+VCPKGS;
  • 如果是Linux平台,CLION+CMAKE+GCC

Glib/GTK+/Gnome

GTK中的delete_event和destroy

  • delete_event 事件一般由用户或者说用户通过窗口管理器产生,即点击窗口右上角的退出按钮。假如不做任何特殊处理,窗口管理器会自动产生destroy信号;如果我们自 定义了处理delete_event事件的回调函数,是否产生destroy信号就和函数的返回值有关,如果是FALSE就产生,反之则没有效果。
  • destroy,除了可以由delete_event事件产生之外,还可以通过gtk_widget_destroy函数与其它信号发生交换。同样,如果不加指定,默认结果是关闭所指向的窗口但并不结束进程。如果我们希望主窗口和进程一起关闭,必须使用gtk_main_quit()。

QT

wxWidgets

Duilib

Doxygen

Unit Test

日志

MPI

XML

JSON

其它配置格式

Ctags

CLIPS

CLIPS is a productive development and delivery expert system tool which provides a complete environment for the construction of rule and/or object based expert systems.

Xapian

Xapian is an Open Source Search Engine Library, released under the GPL v2+. It's written in C++, with bindings to allow use from Perl, Python, PHP, Java, Tcl, C#, Ruby, Lua, Erlang and Node.js (so far!)

标准C/C++语法知识点

Others

Comments