This is just a test c++ repo. Go ahead and break it.

README.md

testcode

This is just a test project. You can do anything here, test g++, make, cmake, git, cscope, and IDE projects.

Getting the project

You can get a copy of this project by clicking on the ZIP or TAR buttons near the top right of the GitList web page.

You can clone from the origin with:

git clone ssh://USERNAME@dlma.com/~/git/testcode.git

IDEs

tmux vim entr

Create two panes in tmux, run vim in one, and run entr in the other with a command like:

find . -type f \( -name \*.[ch]pp -or -name \*.[ch] \) | \
entr -c sh -c 'ctags -R *; make -j$(nproc) && valgrind --leak-check=yes product/testcode'

or, to compile with debug info and run in gdb:

find . -type f \( -name \*.[ch]pp -or -name \*.[ch] \) | \
entr -c sh -c 'ctags -R *; make debug -j$(nproc) && gdb product/testcode'

Tips: you can also run ctags and cscope, and in vim you can grep and use the QuickFix window with commands like...

:grep -rI searchterm .
:cw

See this QuickFix tip for sorting results by filename.

entr One-Liner for When no Makefile

This entr command is handy when composing interview questions without a Makefile:

ls -1 *.h *.cpp | entr sh -c 'g++ -Wall -std=c++14 *.cpp && valgrind --leak-check=yes ./a.out'

Visual Studio Code and WSL2

Once you've got the Remote -WSL extension for WSL, you can invoke Code from the WSL side.

code .

Or, if it's not in your path, something like...

/mnt/c/Users/$USER/AppData/Local/Programs/Microsoft\ VS\ Code/bin/code .

Other IDEs

Look for the presence of their project files. They should work normally.

Current Features

  • Multiple directories for testing build systems and IDEs
  • "make" essentially works.

Is it any good?

Yes.

To Do

  • Compare make vs. cmake vs. autotools
  • Experiment with ctags generation