Copyright(c) 2021-
Author: Chaitanya Tejaswi (github.com/CRTejaswi) License: GPL v3.0+
Personal notes.
Link | Description |
---|---|
Projects | Useful list of projects |
Cpp: System Programming | |
C: Linux Programming (CodeSorcery) | |
WebAssembly |
Commonly used Compiler-suites for CC++ programming are GCC & MSVC.
On Windows, you can install GCC using TDM-MinGW64, and MSVC using Build Tools for Visual Studio 2019. (A complete Visual Studio IDE installation should be deffered in my opinion. Use the MSVC++ compiler cl
only through aforementioned minimal installation. Here's a hello world implementation using cl
.
As a learner, the primary advantage that MSVC offers over GCC is "windows.h" (aka: Windows API), which allows use to create Windows-native utilities. As far as coding practice is concerned, GCC is sufficient. If you work with your code in PowerShell, for system-programming, you can easily use its cmdlets to do all the heavy-lifting, and return the output to your CC++ program.
Here's an example that can be compiled with gcc
on Windows:
#include <stdio.h>
#include <stdlib.h>
int main(){
// Lists items in current directory.
return system("powershell Get-ChildItem .");
}
Although this isn't the way you should be coding in CC++, it's something pretty useful that should be aware of, early on. (FYI, it took me years to figure this out myself).
(currently lifted from https://github.com/tuvtran/project-based-learning#cc)
- Build an Interpreter (Chapter 14 on is written in C)
- Memory Allocators 101 - Write a simple memory allocator
- Write a Shell in C
- Write a FUSE Filesystem
- Build Your Own Text Editor
- Build Your Own Lisp
- How to Program an NES Game in C
- Write an OS from scratch
- How to create an OS from scratch
- Building a CHIP-8 Emulator
- Beginning Game Programming with C++ and SDL
- Implementing a Key-Value Store
- Tiny 3D graphics projects
- Writing a minimal x86-64 JIT compiler in C++
- Build a Live Code-reloader Library for C++
- Write a hash table in C
- Let's Build a Simple Database
- Let's Write a Kernel
- Write a Bootloader in C
- Linux Container in 500 Lines of Code
- Write Your Own Virtual Machine
- Learning KVM - Implement Your Own Linux Kernel
- Write a C compiler
- Implementing a Language with LLVM
- Meta Crush Saga: a C++17 compile-time game
- High-Performance Matrix Multiplication
- Space Invaders from Scratch
- Tetris Tutorial in C++ Platform Independent
- Writing a Linux Debugger
-
Let's Code a TCP/IP Stack
-
Programming concurrent servers
-
MQTT Broker from scratch
- Creating 2D Breakout game clone in C++ with OpenGL
- Handmade Hero
- How to Make Minecraft in C++/OpenGL (video)