Compile and Run C++ file with single custom command
Published: 2022-11-02 21:54:41

I this article I am going to show how you can write your own custom command in terminal. For the purpose of explanation **I am going to show how you can build any run a C++ File with just a single command** .

First check if you have intsall the g++ compiler in your computer or not, to check it run this command, it will show the version of your g++ compiler. If it shows you ther version you are ready to go.
```
g++ --version
```

Open your Terminal App in Mac, and type `cd` this will bring you `~` or `/Users/YourUserName` folder. 

In this folder you need to make a new file in which you want to write the command . For this example I am giving the file name `.custom_command.sh`, now let us understand the file name as you can see I have given a `.` in-front of the file name, dot will hide the file and save from accidental delete. In place of `custom_command` you can give any file name and the file ends with the extension `.sh` which is shell script.

This command will make the file.
```
touch .custom_command.sh
```

Now, We need to write the Script inside this file, open the file with vim.
```
vim .custom_command.sh
```
Now press `I` on vim and copy the code below and paste it in the file. After you have pasted the code hit `esc` and write `:wq` and hit enter this will save the file changes.
```
#!/bin/bash

function run(){
        if g++ -std=c++20 $1 -o runed; then
        ./runed
        else
                echo 'Error in '$1
        fi
}
```
## Code Explanation

First Line `#!/bin/bash` says that with which we need interact, I our case we are interacting with the bash.

Second we have made a function with the name of `run` this is the command with which we will compile and run the c++ file at the same time. For an example we have a C++ file name print_helloworld.cpp which output `HelloWorld!`, first we need to compile it and then run it but with the custom command we can do the both with just one command.
```
run print_helloworld.cpp
```
You can give your own function name, replace the `run` with your own desired word in the `.custom_command.sh` file, for an example if your replace the `run` with `runcpp` than you need to type the below code to run the C++ file.
```
runcpp print_helloworld.cpp
```

Now Coming on the third line, as you can see the code if inside if loop ( the loop basically says if the file compile then run the compiled code or else print a error message ). We need to see the line which says `g++ -std=c++20 $1 -o runed` this mean that we are using a g++ compiler to compile our c++ code and we are using c++ version 20 '-std=c++20' after which we are taking an input `$1` which is the file name and creating a new file `-o runed` in which we will have our complied code. 

If the file compiled successfully then it will run the code with the line `./runned`.

## Back to Setup

After you have successfully made the file `.custom_command.sh` open ~/.bashrc with vim if you use Bash or ~/.zshrc if you use ZSH and paste the below command at the last, this will allow to run your command from any session or terminal window.
```
source ~/.custom_command.sh
```
> Notice : If you have changed the file name in which you have written the custom command then replace the `.custom_command.sh` with your file name.

Now hit `esc` and then type `:wq` and then hit enter. The file has been saved. Now restart you terminal.

## Test The Command
```
run print_helloworld.cpp
```

If you like the article then hit the like button and follow me on twitter for my latest update [@jyotirmoydotdev](https://twitter.com/jyotirmoydotdev).