Compile c++ Source Code Without IDE

When c++ source code needs to be compiled and objects need to be made executable this application accomplished the desired goal.

To initiate the process a select directory dialog appears which allows the programmer to point to the location of the c++ source code.

The “obj” and “bin” subdirectories are created and populated with the objects and executable for a “Debug” and “Release” executable.

The application locates every c++ source code in the selected directory then compiles and creates the executable.

This utility is useful for c++ source code downloaded from the internet.

For a demonstration we will process a project in the “Tes02″ subdirectory.

[codesyntax lang=”bash”]

total 52
drwxrwxr-x  3 archman archman 4096 Jan 20 08:15 .
drwxrwxr-x 74 archman archman 4096 Jan 18 16:56 ..
-rw-rw-r--  1 archman archman    0 Jan 20 08:15 dir.txt
-rw-rw-r--  1 archman archman  465 Jan  7 08:25 link.sh
-rw-rw-r--  1 archman archman  702 Jan  7 08:25 Tes02App.cpp
-rw-rw-r--  1 archman archman  494 Jan  7 08:25 Tes02App.h
-rw-rw-r--  1 archman archman 2144 Jan  7 08:26 Tes02.cbp
-rw-rw-r--  1 archman archman  741 Jan  7 08:28 Tes02.layout
-rw-rw-r--  1 archman archman 8852 Jan  7 08:25 Tes02Main.cpp
-rw-rw-r--  1 archman archman 2139 Jan  7 08:25 Tes02Main.h
-rw-rw-r--  1 archman archman 1879 Jan  7 08:25 Tes02.pbk
drwxrwxr-x  2 archman archman 4096 Jan  7 08:26 wxsmith

[/codesyntax]

Now we invoke our application.

The following files are now added to our project.

[codesyntax lang=”bash”]

total 60
drwxrwxr-x  5 archman archman 4096 Jan 20 08:20 .
drwxrwxr-x 74 archman archman 4096 Jan 18 16:56 ..
drwxrwxr-x  4 archman archman 4096 Jan 20 08:19 bin
-rw-rw-r--  1 archman archman    0 Jan 20 08:20 dir.txt
-rw-rw-r--  1 archman archman  465 Jan  7 08:25 link.sh
drwxrwxr-x  4 archman archman 4096 Jan 20 08:19 obj
-rw-rw-r--  1 archman archman  702 Jan  7 08:25 Tes02App.cpp
-rw-rw-r--  1 archman archman  494 Jan  7 08:25 Tes02App.h
-rw-rw-r--  1 archman archman 2144 Jan  7 08:26 Tes02.cbp
-rw-rw-r--  1 archman archman  741 Jan  7 08:28 Tes02.layout
-rw-rw-r--  1 archman archman 8852 Jan  7 08:25 Tes02Main.cpp
-rw-rw-r--  1 archman archman 2139 Jan  7 08:25 Tes02Main.h
-rw-rw-r--  1 archman archman 1879 Jan  7 08:25 Tes02.pbk
drwxrwxr-x  2 archman archman 4096 Jan  7 08:26 wxsmith

[/codesyntax]

Now we will revied the contents of the newly created sub directories.

[codesyntax lang=”bash”]

total 60
drwxrwxr-x  5 archman archman 4096 Jan 20 08:24 .
drwxrwxr-x 74 archman archman 4096 Jan 18 16:56 ..
drwxrwxr-x  4 archman archman 4096 Jan 20 08:19 bin
-rw-rw-r--  1 archman archman    0 Jan 20 08:24 dir.txt
-rw-rw-r--  1 archman archman  465 Jan  7 08:25 link.sh
drwxrwxr-x  4 archman archman 4096 Jan 20 08:19 obj
-rw-rw-r--  1 archman archman  702 Jan  7 08:25 Tes02App.cpp
-rw-rw-r--  1 archman archman  494 Jan  7 08:25 Tes02App.h
-rw-rw-r--  1 archman archman 2144 Jan  7 08:26 Tes02.cbp
-rw-rw-r--  1 archman archman  741 Jan  7 08:28 Tes02.layout
-rw-rw-r--  1 archman archman 8852 Jan  7 08:25 Tes02Main.cpp
-rw-rw-r--  1 archman archman 2139 Jan  7 08:25 Tes02Main.h
-rw-rw-r--  1 archman archman 1879 Jan  7 08:25 Tes02.pbk
drwxrwxr-x  2 archman archman 4096 Jan  7 08:26 wxsmith

./bin:
total 16
drwxrwxr-x 4 archman archman 4096 Jan 20 08:19 .
drwxrwxr-x 5 archman archman 4096 Jan 20 08:24 ..
drwxrwxr-x 2 archman archman 4096 Jan 20 08:20 Debug
drwxrwxr-x 2 archman archman 4096 Jan 20 08:20 Release

./bin/Debug:
total 1356
drwxrwxr-x 2 archman archman    4096 Jan 20 08:20 .
drwxrwxr-x 4 archman archman    4096 Jan 20 08:19 ..
-rwxrwxr-x 1 archman archman 1377576 Jan 20 08:20 Tes02Main

./bin/Release:
total 240
drwxrwxr-x 2 archman archman   4096 Jan 20 08:20 .
drwxrwxr-x 4 archman archman   4096 Jan 20 08:19 ..
-rwxrwxr-x 1 archman archman 234120 Jan 20 08:20 Tes02Main

./obj:
total 16
drwxrwxr-x 4 archman archman 4096 Jan 20 08:19 .
drwxrwxr-x 5 archman archman 4096 Jan 20 08:24 ..
drwxrwxr-x 2 archman archman 4096 Jan 20 08:20 Debug
drwxrwxr-x 2 archman archman 4096 Jan 20 08:20 Release

./obj/Debug:
total 2568
drwxrwxr-x 2 archman archman    4096 Jan 20 08:20 .
drwxrwxr-x 4 archman archman    4096 Jan 20 08:19 ..
-rw-rw-r-- 1 archman archman  594456 Jan 20 08:19 Tes02App.o
-rw-rw-r-- 1 archman archman 2023272 Jan 20 08:20 Tes02Main.o

./obj/Release:
total 292
drwxrwxr-x 2 archman archman   4096 Jan 20 08:20 .
drwxrwxr-x 4 archman archman   4096 Jan 20 08:19 ..
-rw-rw-r-- 1 archman archman  27000 Jan 20 08:19 Tes02App.o
-rw-rw-r-- 1 archman archman 259352 Jan 20 08:20 Tes02Main.o

./wxsmith:
total 16
drwxrwxr-x 2 archman archman 4096 Jan  7 08:26 .
drwxrwxr-x 5 archman archman 4096 Jan 20 08:24 ..
-rw-rw-r-- 1 archman archman 1621 Jan  7 08:26 dlgLinkInfo.wxs
-rw-rw-r-- 1 archman archman 2021 Jan  7 08:25 Tes02frame.wxs

[/codesyntax]

The programmer may now execute or debug the associated source code.

Consequently a Code Blocks project may be produced by encapsulating the source code in the selected directory.

Mr. Arch Brooks, Software Engineer, Brooks Computing Systems, LLC authored this article.

Leave a Reply

Your email address will not be published. Required fields are marked *