Doxygen – Documentation Builder


Generate documentation from source code

Doxygen is the standard tool for generating documentation from annotated C++ sources, but it also supports other popular programming languages such as C, Objective-C, C#, PHP, Java, Python, IDL (Corba and Microsoft flavors), Fortran, VHDL, Tcl, and to some extent D.


Run following command in terminal:

$ sudo apt-get install doxygen


It’s very simple to use. Just type $ doxygen in terminal and you got its manual.

For using comments format is very important. So before start check its comment instructions.

To create documentation, move to folder where your source file exits through terminal and then type

$ cd /path/to/your/project/source/
$ doxygen -g [filename]

You can fill any filename as your choice. Its configuration file and you can edit that according your project details like change project name in filename.(config file for doxygen)

Then run

$ doxygen [filename]

By this your documentation will be generated. This will create 2 folders in your current directory.

  • html for html documentation open /path/to/project/source/html/index.html to check documentation.
  • latex for documentation using latex as pdf output. For that file run

    $ cd /path/to/your/project/source/latex
    $ make

This will create refman.pdf file(check pdf file as file name may be changed in your case).

That’s all. This is basic guide, you can do more by exploring filename.conf file.
You can also add Special Commands in comments to make your documentation more descriptive.

Hope this will help you.

Vim as your C/C++ IDE using c.vim Plugin

c.vim : C/C++ IDE


  • Statement oriented editing of C / C++ programs.
  • Speed up writing new code considerably.
  • Write code und comments with a professional appearance from the beginning.
  • Use code snippets


Dowload c.vim 6.0

I have edited this plugin according to Doxygen comments for C/C++ Coding. I you want that then you can download it from here.


Open terminal and follow steps.

$ mkdir ~/.vim

$ cd ~/.vim

$ unzip /path/to/

Enable the plugin by adding the following line in ~/.vimrc file.

filetype plugin on

Also check HotKeys for c.vim plugin

Your plugin is installed. Have fun.

C++ with CGI

Before doing example, You have to configure cgi-bin with apache server.
If its done then try your first example.

Open an empty file and write following c++ code.

#include <iostream>
using namespace std;

int main ()

cout << "Content-type:text/html \n\n";
cout << "Hello World - First CGI Program";

return 0;

Now save this file with .cpp extension(example.cpp) in public_html/cgi-bin folder.
Then compile that program.
$ g++ -o example example.cpp

This will create example file which is executable.
Then open browser and open following link”


This will show you following o/p on browser.

Hello World – First CGI Program

If you find any problem then share it as comments.

CGI Configuration on Apache

There are 3 ways to use CGI.

  • First Way
    When we install Apache server, then /usr/lib/cgi-bin folder is automatically created. You can place c++ files in that folder and execute them on browser(localhost/cgi-bin/example).
  • Second Way
    You can also configure /var/www/cgi-bin for CGI programming.
  • Third Way
    You can also configure cgi-bin in home directory as /public_html/cgi-bin.

According to me 3rd way is best as its in home directory and we don’t have to use sudo while compiling or creating any file.

Steps to configure cgi-bin in public_html and public_html. Run following commands in terminal

  1. $ sudo a2enmod cgi
  2. $ sudo a2enmod cgid
  3. $ sudo a2enmod userdir
  4. $ sudo service apache2 restart
  5. $ mkdir ~/public_html
  6. $ cd ~/public_html
  7. $ mkdir cgi-bin
  8. $ cd /etc/apache2
  9. $ sudo vim sites-available/default
  10. Add following text in file:
     ScriptAlias /cgi-bin/ /home/*/public_html/cgi-bin/
     <Directory "/home/*/public_html/cgi-bin">
             AllowOverride None
             Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
             SetHandler cgi-script
             Order allow,deny
             Allow from all
  11. $ sudo service apache2 restart

MySQL with C++

Here’s an example for connecting C++ program with MySQL.

You can simply download code from Github [Link]


Do as following

Write following code in text editor and save file as mysql.cpp

// Include Header Files
#include <iostream>
#include <cstdio>
#include <cstdlib>

// For MySQL Connection
#include <mysql.h>

using namespace std;

// Defining Constant Variables
#define SERVER "localhost"
#define USER "root"
#define PASSWORD "password"
#define DATABASE "test"

int main()
    MYSQL *connect;
    connect = mysql_init(NULL);

    if (!connect)
        cout << "Mysql Initialization Failed";
        return 1;

    connect = mysql_real_connect(connect, SERVER, USER, PASSWORD, DATABASE, 0,NULL,0);

    if (connect)
        cout << "Connection Succeededn";
        cout << "Connection Failedn";

    MYSQL_RES *res_set;
    MYSQL_ROW row;

    // Replace MySQL query with your query

    mysql_query (connect,"show tables");

    unsigned int i=0;


    unsigned int numrows = mysql_num_rows(res_set);
    cout << " Tables in " << DATABASE << " database " << endl;

    while (((row=mysql_fetch_row(res_set)) !=NULL))
        cout << row[i] << endl;

    mysql_close (connect);

    return 0;

Now compile and run this program in terminal using following statements.

$ g++ -o mysql mysql.cpp -L/usr/include/mysql -lmysqlclient -I/usr/include/mysql

$ ./mysql