C与C++学习之路
Reference
- http://www.cplusplus.com/
- http://cppreference.com/
- News, Status & Discussion about Standard C++: https://isocpp.org/
- C++ compiler support: https://en.cppreference.com/w/cpp/compiler_support
- C standard library: https://en.wikipedia.org/wiki/C_standard_library
-
C++ Standard Library: https://en.wikipedia.org/wiki/C%2B%2B_Standard_Library
- comp.lang.c Frequently Asked Questions: http://c-faq.com/
- C 语言常见问题集: http://c-faq-chn.sourceforge.net/ccfaq/
- The C++ Standard Library - A Tutorial and Reference: http://www.cppstdlib.com/
Libraries
- boost: http://www.boost.org/
- Ncurses: http://invisible-island.net/ncurses/ncurses.html
- OGLplus: http://oglplus.org/
- POSIX Threads for Win32: https://www.sourceware.org/pthreads-win32/
- SWIG: http://www.swig.org/
- Borland Graphics Interface (BGI) for Windows: http://www.cs.colorado.edu/~main/cs1300/doc/bgi/
- Win32 BGI implementation(OpenBGI): https://sourceforge.net/projects/openbgi/
- EasyX Library for C++: http://www.easyx.cn/
- EGE(Easy Graphics Engine): http://xege.org/
- CLucene - a C++ search engine: https://sourceforge.net/projects/clucene/
- Translate STL 2 C Language: https://sourceforge.net/projects/tstl2cl/
- Borland-style CONIO: https://sourceforge.net/projects/conio/
- DISLIN: https://www.mps.mpg.de/dislin/
- ICU - International Components for Unicode(ICU4C/ICU4J): http://site.icu-project.org/
- libevent: http://libevent.org/
- ZeroMQ: https://zeromq.org/
- List of numerical libraries: https://en.wikipedia.org/wiki/List_of_numerical_libraries
- Standard Template Library Programmer’s Guide: http://www.sgi.com/tech/stl/
- libiconv: https://www.gnu.org/software/libiconv/
-
GSL - GNU Scientific Library: https://www.gnu.org/software/gsl/
- Piologie: https://github.com/Wedeniwski/piologie
- cryptlib: http://www.cs.auckland.ac.nz/~pgut001/cryptlib/
- RSAEuro: https://github.com/mort666/RSAEuro
- RSARef: https://sourceforge.net/projects/rsaref/
GMP
GMP大数库是GNU项目的一部分,诞生于1991年。作为一个任意精度的大整数运算库,它包括了任意精度的整数、浮点数的各种基本运算操作。它是一个C语言的库,但是官方提供了C++的包装类,主要的应用方向是密码学、网络安全、代数系统、计算科学等。GMP库的运行速度非常快,它的官方网站上称自己为地球上最快的大数库,但是GMP库所提供的只是数学运算功能,并没有密码学相关的高级功能。
- GNU MP(GMP):https://gmplib.org/
- GMP Manual:https://gmplib.org/manual/
Miracl
Miracl库是Shamus Software Ltd开发的一个大数库,它的使用许可针对教育科学研究或者非商业目的的应用是免费的。它是一个C语言的库,同时提供了几个较为简单的c++包装类。在功能上它不但提供了高精度的大整数和分数的各种数学运算操作而且提供了很多密码学算法中的功能模块,如SHA、AES、DSA等中的一些底层操作。最为特别的是它还提供了很多椭圆曲线密码体制中的底层功能模块。由于Miracl库的内部实现采用了很多的汇编代码,故运行速度也非常快。
- MIRACL:https://github.com/CertiVox/MIRACL
- miracl user manual: https://github.com/miracl/MIRACL/blob/master/docs/miracl-user-manual/README.md
Crypto++
Crypto++库是一个开源项目。由于它是一个纯C++实现的库,所以应用非常的方便,库的结构清晰,文档也很健全。Crypto++库提供了很多密码学算法的实现。
- Crypto++:https://github.com/weidai11/cryptopp
OpenSSL
OpenSSL是一个开放源代码的实现了SSL及相关加密技术的软件包,由加拿大的Eric Yang等发起编写的。它可以实现消息摘要、文件的加密和解密、数字证书、数字签名和随机数字等。
- OpenSSL: https://www.openssl.org
- BoringSSL: https://github.com/google/boringssl
- LibreSSL: http://www.libressl.org/
- OpenSSL 在windows系统下的编译全解: https://blog.csdn.net/danscort2000/article/details/81300248
- 使用OpenSSL实现X25519秘钥协商功能:https://www.cnblogs.com/jiangxinnju/p/12615280.html
libcstl
- libcstl: https://github.com/activesys/libcstl
- The libcstl Library User Guide: https://github.com/activesys/libcstl/blob/aba1becc02/doc/user/libcstl_user_guide.pdf
Windows C++
- Visual Studio: https://visualstudio.microsoft.com/zh-hans/
- Visual Studio Locator: https://github.com/microsoft/vswhere
- VISUAL ASSIST: https://www.wholetomato.com/
- MSDN Magazine Issues and Downloads: https://learn.microsoft.com/en-us/archive/msdn-magazine/msdn-magazine-issues
- Spec Explorer 2010 Visual Studio Power Tool: https://marketplace.visualstudio.com/items?itemName=SpecExplorerTeam.SpecExplorer2010VisualStudioPowerTool-5089
Microsoft Visual Studio 2010 Visualization and Modeling Feature Pack: https://learn.microsoft.com/en-us/previous-versions/dd460723(v=vs.110)Windows 8 SDK: Include files in “shared”, “um”, and “winrt” directories. What’s the difference? https://learn.microsoft.com/en-us/archive/msdn-technet-forums/24b9c784-d642-423e-a407-8bbee14e19ab
Visual C++参考
- 通过命令行使用 Microsoft C++ 工具集: https://learn.microsoft.com/zh-cn/cpp/build/building-on-the-command-line
- Understanding Custom Build Steps and Build Events: https://learn.microsoft.com/en-us/cpp/build/understanding-custom-build-steps-and-build-events
- Precompiled header files: https://learn.microsoft.com/zh-cn/cpp/build/creating-precompiled-header-files
- LINK 输入文件(lib,def,pdf等): https://learn.microsoft.com/zh-cn/cpp/build/reference/link-input-files
- 为 Visual Studio C++ 项目创建的文件类型: https://learn.microsoft.com/zh-cn/cpp/build/reference/file-types-created-for-visual-cpp-projects
- /PDB(使用程序数据库): https://learn.microsoft.com/zh-cn/cpp/build/reference/pdb-use-program-database
- /std (Specify Language Standard Version): https://learn.microsoft.com/zh-cn/cpp/build/reference/std-specify-language-standard-version
- CRT Library Features: https://learn.microsoft.com/zh-cn/cpp/c-runtime-library/crt-library-features
- UCRT 按字母顺序排列的函数参考: https://learn.microsoft.com/zh-cn/cpp/c-runtime-library/reference/crt-alphabetical-function-reference
- Security Features in the CRT: https://learn.microsoft.com/zh-cn/cpp/c-runtime-library/security-features-in-the-crt
- Importing and Exporting: https://learn.microsoft.com/zh-cn/cpp/build/importing-and-exporting
- DUMPBIN Reference: https://learn.microsoft.com/zh-cn/cpp/build/reference/dumpbin-reference
-
自变量传递和命名约定(__cdecl/__stdcall/__fastcall): https://learn.microsoft.com/zh-cn/cpp/cpp/argument-passing-and-naming-conventions
- C/C++ Compiler and build tools errors and warnings: https://learn.microsoft.com/zh-cn/cpp/error-messages/compiler-errors-1/c-cpp-build-errors
- C2360(initialization of ‘identifier’ is skipped by ‘case’ label)
- C2760(syntax error : expected ‘name1’ not ‘name2’): https://blog.csdn.net/xiongya8888/article/details/84571420
- C4251(‘identifier’ : class ‘type’ needs to have dll-interface to be used by clients of class ‘type2’)
- Exporting classes containing std:: objects (vector, map, etc) from a dll: https://stackoverflow.com/questions/767579/exporting-classes-containing-std-objects-vector-map-etc-from-a-dll
- 链接器工具错误和警告 (LNKxxxx): https://learn.microsoft.com/zh-cn/cpp/error-messages/tool-errors/linker-tools-errors-and-warnings
- LNK2026: 模块对于 SAFESEH 映像不安全
- LNK4098: 默认库“library”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
- LNK4042(object specified more than once; extras ignored)
- Visual Studio 2010’s strange “warning LNK4042”: https://stackoverflow.com/questions/3695174/visual-studio-2010s-strange-warning-lnk4042
- Visual Studio 2010 & 2008 can’t handle source files with identical names in different folders?: https://stackoverflow.com/questions/3729515/visual-studio-2010-2008-cant-handle-source-files-with-identical-names-in-diff
-
Windows 控制台应用: https://learn.microsoft.com/zh-cn/windows/console/
-
框架选项概述: https://learn.microsoft.com/zh-cn/windows/apps/get-started
- 使用 Win32 API 的桌面 Windows 应用入门: https://learn.microsoft.com/zh-cn/windows/win32/desktop-programming
- 进程间通信: https://learn.microsoft.com/zh-cn/windows/win32/ipc/interprocess-communications
- windows-data-types: https://learn.microsoft.com/zh-cn/windows/win32/winprog/windows-data-types
- Windows API 集: https://learn.microsoft.com/zh-cn/windows/win32/apiindex/windows-apisets
- windows.foundation.h: https://learn.microsoft.com/zh-cn/windows/win32/api/windows.foundation/
- shellapi.h: https://learn.microsoft.com/zh-cn/windows/win32/api/shellapi/
- Strsafe.h: https://learn.microsoft.com/zh-cn/windows/win32/menurc/strsafe-ovw
- winbase.h: https://learn.microsoft.com/zh-cn/windows/win32/api/winbase/
- libloaderapi.h: https://learn.microsoft.com/zh-cn/windows/win32/api/libloaderapi/
- processthreadsapi.h: https://learn.microsoft.com/zh-cn/windows/win32/api/processthreadsapi/
- synchapi.h: https://learn.microsoft.com/zh-cn/windows/win32/api/processthreadsapi/
- debugapi.h: https://learn.microsoft.com/zh-cn/windows/win32/api/debugapi/
- I/O Completion Ports: https://learn.microsoft.com/zh-cn/windows/win32/fileio/i-o-completion-ports
-
CNG DPAPI: https://learn.microsoft.com/zh-cn/windows/win32/seccng/cng-dpapi
通用 Windows 平台 (UWP) - 入门: https://learn.microsoft.com/zh-cn/windows/uwp/get-started/C++/WinRT: https://learn.microsoft.com/zh-cn/windows/uwp/cpp-and-winrt-apis/选择哪一种网络技术?https://learn.microsoft.com/zh-cn/windows/uwp/networking/which-networking-technology-
Turning to the past to power Windows’ future: An in-depth look at WinRT: https://arstechnica.com/features/2012/10/windows-8-and-winrt-everything-old-is-new-again/ -
C++17 Feature Removals And Deprecation: https://devblogs.microsoft.com/cppblog/c17-feature-removals-and-deprecations/
- atexit和onexit的主要用法和区别: http://technet.microsoft.com/zh-cn/library/tze57ck3
-
_onexit, _onexit_m: http://technet.microsoft.com/zh-cn/library/zk17ww08
- VC 运行时库 /MD、/MDd 和 /MT、/MTd: https://www.iteye.com/blog/qimo601-1550348
- #error Please use the /MD switch for _AFXDLL builds: https://stackoverflow.com/questions/4229120/error-please-use-the-md-switch-for-afxdll-builds
- LINK : fatal error LNK1104: 无法打开文件“LIBCD.lib”: https://www.cnblogs.com/hyfemma/archive/2010/11/14/1876846.html
- error C4995: “wcscpy”: 名称被标记为 #pragma deprecated: https://www.cnblogs.com/aliflycoris/p/11328425.html
- VC 常用数据类型总结 俩篇: http://www.cnblogs.com/sadier/articles/102085.html
- 预编译头文件解析: http://www.cnblogs.com/khler/archive/2010/07/22/1782977.html
- VC++6.0应用程序错误,0x5003eaed: https://jingyan.baidu.com/article/1709ad80a1b2c64634c4f0eb.html
- VC++,掀起你的盖头来——谈VC++对象模型: http://www.cnblogs.com/chio/archive/2007/11/25/971644.html
- Visual C++ 入门精解: http://www.cppblog.com/yuqilin1228/archive/2010/03/26/110614.html
- Useful enhancements for Visual Studio .NET: http://www.codeproject.com/Articles/2704/Useful-enhancements-for-Visual-Studio-NET
- Windows动态库与Linux共享对象比较: https://blog.csdn.net/jatula/article/details/83324280
- ODBC中的FX/Bulk RFX数据交换机制分析: http://blog.csdn.net/workdog/article/details/1524126
- VC++6.0编译时总死机,安装vcsp6补丁: https://blog.csdn.net/xs574924427/article/details/8242414
- MSVC vs. MinGW 之 (lib,dll,def,obj,exe) vs (a,dll,def,o,exe): http://blog.sina.com.cn/s/blog_5ea0192f010102ig.html
- visual studio 2008中头文件和库文件路径设置: http://blog.sina.com.cn/s/blog_77c35cff01010u7b.html
- VS2005调试时出现无法找到调试信息解决方案: https://blog.csdn.net/bozhi2008/article/details/83732685
- VS2017中设置程序以管理员身份运行: https://blog.csdn.net/li_wen01/article/details/80110423
- VS2017应用在XP系统上运行: https://blog.csdn.net/baidu_33720448/article/details/84284625
- 在 VS2017 使用所有旧版本的平台工具集: https://bbs.pediy.com/thread-248840.htm
- Visual Studio 如何屏蔽告警: https://blog.csdn.net/ZHAOJUNWEI08/article/details/84288189
- C++:在程序中获取全球唯一标识号(GUID或UUID): https://www.cnblogs.com/john-h/p/5886761.html
- MSBulid、IncrediBuild命令行接口实现自动化编译: https://blog.csdn.net/yockie/article/details/17010509
- 请问如何修改某个exe文件的版本信息,包括CompanyName、ProductName等?: https://bbs.csdn.net/topics/80184784
- Visual Studio 2017 UTF-8 无 BOM 一站式解决办法: https://www.pianshen.com/article/65771338122/
需要整理的
- DEBUG和RELEASE 版本差异及调试相关问题: https://blog.csdn.net/orc/article/details/8758
- Debug和Release有什么区别: https://blog.csdn.net/chenhu_doc/article/details/932305
- 关于VS中区分debug与release,32位与64位编译的宏定义: https://blog.csdn.net/zhuyingqingfen/article/details/24352137
- VC++中debug跟release编译模式的区别总结: https://www.iteye.com/blog/javafans-609937
- _DEBUG vs NDEBUG: https://stackoverflow.com/questions/2290509/debug-vs-ndebug
Linux C++
- GNU C Library(glibc): https://www.gnu.org/software/libc/
- C POSIX library: https://en.wikipedia.org/wiki/C_POSIX_library
- POSIX.1-2017: http://pubs.opengroup.org/onlinepubs/9699919799
-
SUSv4(Single UNIX® Specification, Version 4): https://publications.opengroup.org/t101
-
Linux 常用 C 函数参考手册: https://getiot.tech/manual/linux-c-functions/
- GCC, the GNU Compiler Collection: https://gcc.gnu.org/
- The LLVM Compiler Infrastructure: http://llvm.org/
- clang: a C language family frontend for LLVM: http://clang.llvm.org/
-
简述 LLVM 与 Clang 及其关系: https://xuhehuan.com/2738.html
- GNU GCC手册-1: http://blog.chinaunix.net/uid-10386087-id-2958766.html
- gcc的基本用法: http://blog.chinaunix.net/uid-20183141-id-1731007.html
- Comparison of Diagnostics between GCC and Clang: https://gcc.gnu.org/wiki/ClangDiagnosticsComparison
-
gcc和g++的区别: http://www.linuxsky.org/doc/dev/200804/298.html
- GNU build system: http://en.wikipedia.org/wiki/GNU_build_system
- GNU_Libtool: http://en.wikipedia.org/wiki/GNU_Libtool
- Autotools Mythbuster: https://autotools.io/index.html
- Autoconf: http://zh.wikipedia.org/wiki/Autoconf
-
Automake: http://zh.wikipedia.org/wiki/Automakehttps://baike.baidu.com/item/aotumake
- Linux内核中无名管道pipe和有名管道fifo的分析: http://blog.csdn.net/duanyipeng/article/details/6825232
- 应用 Valgrind 发现 Linux 程序的内存问题: http://www.ibm.com/developerworks/cn/linux/l-cn-valgrind/
- 如何在linux下检测内存泄漏: http://www.ibm.com/developerworks/cn/linux/l-mleak/
- Linux下的时间概念(主要是其中的计时器的使用): http://blog.chinaunix.net/uid-23215128-id-2521295.html
- Linux 桌面应用技术专题: http://www.ibm.com/developerworks/cn/linux/theme/desktop/index.html
- Linux系统调用列表: http://www.ibm.com/developerworks/cn/linux/kernel/syscall/part1/appendix.html
- Linux 套接字编程中的 5 个隐患: http://www.ibm.com/developerworks/cn/linux/l-sockpit/
- Linux静态/动态链接库的创建和使用: https://blog.csdn.net/hcj2002/article/details/712146
Windows/Linux剪不断理还乱
- MinGW-w64(推荐): https://www.mingw-w64.org/
- MinGW-w64下载地址:https://sourceforge.net/projects/mingw-w64/files/mingw-w64/mingw-w64-release/
- What is difference between sjlj vs dwarf vs seh? https://stackoverflow.com/questions/15670169/what-is-difference-between-sjlj-vs-dwarf-vs-seh
- MinGW: Minimalist GNU for Windows Files, A native Windows port of the GNU Compiler Collection (GCC): https://sourceforge.net/projects/mingw/
- cygwin: http://www.cygwin.com/
- MSYS2: https://www.msys2.org/
GnuWin: https://sourceforge.net/projects/getgnuwin32/UnxUtils: https://sourceforge.net/projects/unxutils/- 对话 UNIX: 在 Windows 上使用 Cygwin: http://www.ibm.com/developerworks/cn/aix/library/au-spunix_cygwin/
- GTK+与MFC不完全对比: http://blog.csdn.net/absurd/article/details/1091143
- 将 MFC 应用程序移植到 Linux: https://www.ibm.com/developerworks/cn/linux/guitoolkit/l-mfc/index.html
- Enabling string conversion functions in MinGW: http://tehsausage.com/mingw-to-string
- TDM-GCC: https://jmeubank.github.io/tdm-gcc/
C++近场通讯开发
-
Win32蓝牙开发: https://learn.microsoft.com/zh-cn/windows/win32/bluetooth/bluetooth-start-page
- Native Wifi: https://learn.microsoft.com/zh-cn/windows/win32/nativewifi/portal
- Wi-Fi Direct: https://learn.microsoft.com/zh-cn/windows-hardware/drivers/partnerapps/wi-fi-direct
-
Wi-Fi Direct Legacy Connection C++ WRL Demo: https://github.com/microsoft/Windows-classic-samples/tree/master/Samples/WiFiDirectLegacyAP
- WiFi direct 的相关特点: https://www.cnblogs.com/TheAfter/p/9914480.html
- NATIVE WIFI HOSTED NETWORK VS WIFI DIRECT LEGACY SOFT AP: https://www.btframework.com/hostednetwork.htm
Dev-C++
CMake
- CMake: https://cmake.org/
- Mastering CMake: A Cross-Platform Build System: https://cmake.org/cmake/help/book/mastering-cmake/
- cmakeconverter: https://github.com/pavelliavonau/cmakeconverter
- How to support both vcxproj to cmake on a project? https://stackoverflow.com/questions/6649606/how-to-support-both-vcxproj-to-cmake-on-a-project
XMake
- XMake: https://xmake.io/#/
GDB
- GDB: The GNU Project Debugger: http://www.gnu.org/software/gdb/
- LINUX下GDB调试: http://blog.csdn.net/sco_field/article/details/4310987
包管理器
- Does C++ need a universal package manager? http://pfultz2.com/blog/2017/10/27/universal-package-manager/
- vcpkg(C++ Library Manager for Windows, Linux, and MacOS): https://github.com/Microsoft/vcpkg
- vcpkg.io: https://vcpkg.io/en/packages
- 解决vcpkg下载缓慢的问题: https://blog.csdn.net/qq_39690181/article/details/82910610
- Conan(the C / C++ Package Manager for Developers): https://conan.io/
- Buckaroo: https://www.buckaroo.pm/
- cget: https://cget.readthedocs.io/en/latest/
- Conda: https://conda.io/docs/
- CPM(Deprcated): http://www.cpm.rocks/
- CPPAN: https://cppan.org/
- Hunter: https://docs.hunter.sh/en/latest/
一点经验教训
C/C++由于历史原因,编译,构建难度相对于目前主流的其他语言如Java、Python、Go等要大的多,不同操作系统平台,不同编译工具差别很大,且没有一个完美的包管理工具,为了少花时间到环境配置上,推荐选型如下:
- 如果是Windows平台,且基本没有依赖,建议配套CLION+CMAKE+GCC(MinGW);
- 如果是Windows平台,且依赖较多,比如Gtest,OpenSSL,建议配套VS+VCPKGS;
- 如果是Linux平台,CLION+CMAKE+GCC
Glib/GTK+/Gnome
- GLib Reference Manual: https://docs.gtk.org/glib/
- GLIB 常用数据结构介绍: http://blog.csdn.net/billxin2012/article/category/5334329
- glib库简介: http://liujian.is-programmer.com/posts/243.html
-
glib库异步队列和线程池代码分析: http://blog.csdn.net/ljl1704/article/details/17243429
- GTK+: http://www.gtk.org/
- GTK文档: https://docs.gtk.org/
- GTK 4 Tutorial for beginners: https://toshiocp.github.io/Gtk4-tutorial/
- 在gtk+程序中显示中文说明: http://blog.chinaunix.net/uid-222028-id-2658485.html
-
使用 GLib 工具集管理 C 数据帖子发表于: http://forum.ubuntu.org.cn/viewtopic.php?p=2614850
- GNOME 开发者中心: https://developer.gnome.org/
GNOME Older guides and API references: https://developer-old.gnome.org/- Project Ridley: https://wiki.gnome.org/Attic/ProjectRidley
-
libgnome and libgnomeui Must Die! https://wiki.gnome.org/Attic/LibgnomeMustDie
- Vala: https://gitlab.gnome.org/GNOME/vala
- Anjuta(不推荐): https://gitlab.gnome.org/Archive/anjuta
- Glade(不推荐): https://gitlab.gnome.org/GNOME/glade/
GTK中的delete_event和destroy
- delete_event 事件一般由用户或者说用户通过窗口管理器产生,即点击窗口右上角的退出按钮。假如不做任何特殊处理,窗口管理器会自动产生destroy信号;如果我们自 定义了处理delete_event事件的回调函数,是否产生destroy信号就和函数的返回值有关,如果是FALSE就产生,反之则没有效果。
- destroy,除了可以由delete_event事件产生之外,还可以通过gtk_widget_destroy函数与其它信号发生交换。同样,如果不加指定,默认结果是关闭所指向的窗口但并不结束进程。如果我们希望主窗口和进程一起关闭,必须使用gtk_main_quit()。
QT
- http://www.qt.io/
- Qter开源社区: http://www.qter.org/
- qtcn: http://www.qtcn.org/bbs/i.php
wxWidgets
- wxWidgets: http://www.wxwidgets.org/
Duilib
-
Duilib: https://github.com/duilib/duilib
- DUILibxml配置: https://www.cnblogs.com/xubin0523/archive/2012/06/01/2530914.html
- DUiLib 源码分析——第一篇UIManager: https://www.cnblogs.com/xubin0523/archive/2012/06/01/2530922.html
- DUiLib 源码分析——第二篇UIBase: https://www.cnblogs.com/xubin0523/archive/2012/06/01/2530910.html
Doxygen
- https://github.com/doxygen/doxygen
- 学习用 doxygen 生成源码文档: http://www.ibm.com/developerworks/cn/aix/library/au-learningdoxygen/
- 使用doxygen为C/C++程序生成中文文档(上): http://blog.csdn.net/fmddlmyy/article/details/1663898
- Doxygen + Graphviz + Htmlhelp, 成为文档好手: http://www.cnblogs.com/lidabo/archive/2012/12/24/2831518.html
Unit Test
- Google Test: https://github.com/google/googletest
- 玩转Google开源C++单元测试框架Google Test系列(gtest)(总): http://www.cnblogs.com/coderzh/archive/2009/04/06/1426755.html
-
Code Blocks+gtest环境配置: https://www.cnblogs.com/jiangxinnju/p/10163312.html
- CppUnit(C++ port of JUnit): https://sourceforge.net/projects/cppunit/
- 使用CppUnit(Windows): http://www.cnblogs.com/zhcncn/archive/2012/12/25/2832162.html
- cppunit helloworld详尽篇(Linux): https://blog.csdn.net/snaill/article/details/605374
- 开放源码 C/C++ 单元测试工具,第 3 部分: 了解 CppTest: http://www.ibm.com/developerworks/cn/aix/library/au-ctools3_ccptest/
-
CppUnit源码解读: http://morningspace.51.net/resource/cppunit/cppunit_anno.html
- C Unit Testing Framework: https://sourceforge.net/projects/cunit/
- Parasoft C/C++test: https://www.parasoft.com/products/ctest
日志
- log4c: https://sourceforge.net/projects/log4c/
- clog: https://github.com/mmueller/clog
- Log library for C++: https://sourceforge.net/projects/log4cpp/
- log4cplus: https://sourceforge.net/projects/log4cplus/
- glog: https://github.com/google/glog
- C++日志操作开源函数库之Google-glog: https://www.cnblogs.com/kuliuheng/p/5046101.html
- Google glog 使用: https://www.cnblogs.com/zhoug2020/p/5884598.html
- 关于glog使用中遇到的问题: https://www.cnblogs.com/haodafeng/p/11969284.html
- 在Windows上编译、应用glog: https://blog.csdn.net/sagittarius_warrior/article/details/77482087
MPI
- Open MPI(Open Source High Performance Computing): https://www.open-mpi.org/
XML
- TinyXML: https://sourceforge.net/projects/tinyxml/
- tinyxml2: https://github.com/leethomason/tinyxml2
- Libxml2: http://xmlsoft.org/
- RapidXml: https://sourceforge.net/projects/rapidxml/
JSON
- jsoncpp: https://github.com/open-source-parsers/jsoncpp
- nlohmann/json(JSON for Modern C++): https://github.com/nlohmann/json
其它配置格式
- libconfig: https://github.com/hyperrealm/libconfig
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++语法知识点
- C结构体之位域(位段): https://www.cnblogs.com/bigrabbit/archive/2012/09/20/2695543.html
- C++ NULL与nullptr的区别: https://www.cnblogs.com/Philip-Tell-Truth/p/6594632.html
- nothrow: http://www.cplusplus.com/reference/new/nothrow/
- C++中的delete和delete[]的区别: https://blog.csdn.net/u012936940/article/details/80919880
- 对C++中map的四种插入方式的比较及同值覆盖问题: https://blog.csdn.net/qq_41135605/article/details/98876749
Others
-
C++代码质量度量工具大阅兵: https://www.cnblogs.com/jiangxinnju/p/12292818.html
-
The International Obfuscated C Code Contest: http://www.ioccc.org/
- C++基础—-C++ 布尔类型(bool)及BOOL和bool的区别: https://blog.csdn.net/qiaoxinyu1989/article/details/80942364
- size_t 类型: https://www.cnblogs.com/xiongmao-cpp/p/5233760.html
- C++命名空间: https://blog.csdn.net/xiongya8888/article/details/89345539
- c++对象的生命周期: https://blog.csdn.net/j_factory/article/details/3582499
- C语言内存分配方式: https://www.cnblogs.com/dyx1024/archive/2011/01/27/2556769.html
- C++ 中 # 和 ## 和 #@ 的使用: https://blog.csdn.net/martinue/article/details/84344384
- 容器元素是const元素时的错误: https://segmentfault.com/q/1010000004125702
- Does C++11 allow vector
? <https://stackoverflow.com/questions/6954906/does-c11-allow-vectorconst-t> - Comparing Two High-Performance I/O Design Patterns: http://www.artima.com/articles/io_design_patterns.html
- 使您的软件运行起来——防止缓冲区溢出:https://www.ibm.com/developerworks/cn/security/buffer-defend/index.html#main
- 屏幕输出VS文件输出:https://www.cnblogs.com/jiangxinnju/p/5516917.html
- 亲密接触C可变参数函数 : http://blog.csdn.net/linyt/article/details/2243605
- TCP连接中的TIME_WAIT状态: http://blog.csdn.net/sunnydogzhou/article/details/6572071
- see also: 《TCP-IP详解卷1:协议》第十八章
- TCP可靠传输及流量控制系列六:TCP连接中的TIME_WAIT状态: http://zenhumany.blog.163.com/blog/static/1718066332010827104655541/
- C++项目中的extern “C” {}: http://www.cnblogs.com/skynet/archive/2010/07/10/1774964.html
- 由函数clock想到的: https://www.cnblogs.com/jiangxinnju/p/5516920.html
- 理解 pkg-config 工具: http://www.cheWebScarabnjunlu.com/2011/03/understanding-pkg-config-tool/
- C/C++中的abort、atexit、exit和_Exit: https://www.cnblogs.com/jiangxinnju/p/5516909.html
- setjmp()/longjmp()的使用方法和场合: http://www.cnblogs.com/lowhere/archive/2008/08/22/1274309.html
- C++ 工程实践(7):iostream 的用途与局限: http://blog.csdn.net/solstice/article/details/6612179
- 指针的大小: http://shansun123.iteye.com/blog/398601
- C/C++指针原理: http://blog.csdn.net/column/details/c-pointer.html
- C++ STL轻松导学: http://morningspace.51.net/resource/stlintro/stlintro.html?s=85fee499fe8534afc1f76ceceb0d41ff
- undefined reference问题总结: http://ticktick.blog.51cto.com/823160/431329/
- C++ Rocks!: http://cpprocks.com/
- 减少C++代码编译时间的方法: http://www.cnblogs.com/misserwell/p/4343927.html
- C++编译错误cannot have cv-qualifier: https://www.cnblogs.com/jiangxinnju/p/5516904.html
- 在 console mode 中使用 C/C++ 编译器: https://blog.csdn.net/dlyhlq/article/details/2104217
- 基于对象和面向对象的区别: https://www.cnblogs.com/jiangxinnju/p/5516880.html
- const 不再迷茫: https://www.cnblogs.com/jiangxinnju/p/5516881.html
- C语言中随机数相关问题: https://www.cnblogs.com/jiangxinnju/p/5516905.html
- VS Code C++ 代码格式化方法(clang-format): https://blog.csdn.net/core571/article/details/82867932
- C/C++大数库简介: https://www.cnblogs.com/jiangxinnju/p/5516911.html
- cdecl: http://www.cdecl.org/
- Return-into-libc 攻击及其防御: https://www.csdn.net/article/a/2014-03-03/15818077
- C++资源之不完全导引: C++资源之不完全导引.docx
Comments