Introduction
Developing programs in C or C++ often involves writing code, compiling it to an executable, and then running that executable. This process is straightforward but requires some knowledge of the tools and environment settings specific to Unix-like operating systems such as Linux and macOS. In this tutorial, we’ll cover how to compile and run C/C++ programs using common command-line tools.
Prerequisites
Before beginning, ensure you have:
- A text editor (e.g., Vim, Nano, or VSCode) for writing your code.
- A Unix-like terminal (Terminal.app on macOS or any terminal in Linux).
- The GCC or G++ compiler installed. These are typically pre-installed on most systems.
Writing Your C/C++ Code
Create a simple C program named hello.c
:
#include <stdio.h>
int main() {
printf("Hello, World!\n");
return 0;
}
Or a C++ program named hello.cpp
:
#include <iostream>
int main() {
std::cout << "Hello, World!" << std::endl;
return 0;
}
Compiling the Code
Using GCC for C Programs
To compile a C program using the GNU Compiler Collection (GCC), use the gcc
command:
gcc hello.c -o hello
Here:
hello.c
is your source file.-o hello
specifies that the output executable should be namedhello
.
Using G++ for C++ Programs
To compile a C++ program, use the GNU C++ Compiler (g++
):
g++ hello.cpp -o hello
This command works similarly to gcc
, but it is used specifically for C++ source files.
Running the Compiled Program
Once compiled successfully, you can run your program. Navigate to the directory containing your executable and execute:
./hello
The ./
prefix specifies that the executable resides in the current working directory. This step is crucial because Unix-like systems do not search the current directory by default when looking for executables.
Automating with Make
For larger projects, manually compiling each file can become cumbersome. The make
utility simplifies this process. If your project contains a single source file like foo.c
, you can compile it directly using:
make foo
If no makefile is provided, make
uses built-in rules to compile the program into an executable named after the source file (minus the extension).
Managing Executable Search Path
The Unix shell searches for executables in directories listed in the $PATH
environment variable. To run your compiled programs without specifying their full path, you can add your directory to this list.
Displaying Current $PATH
Check your current $PATH
with:
echo $PATH
Modifying $PATH
To include a custom directory (e.g., ~/bin
) in your search path, edit or create the .bash_profile
or .zshrc
file in your home directory and add:
export PATH=~/bin:$PATH
This command prepends ~/bin
to your existing $PATH
, allowing executables in this directory to be run directly.
Conclusion
Compiling and running C/C++ programs on Unix-like systems is a straightforward process when you understand the tools available. By mastering these techniques, you can efficiently develop and execute your code across various platforms that support Unix-style environments.
Remember, practice is key—experiment with different commands and configurations to enhance your understanding of this essential development workflow.