Execution problem with Libtool Versioning control

Hi,

Is anybody familiar with libtool could explain me the following issue.?

I've created a small factorial program(fact_impl.c, fact_appln.c & fact.h) in order to know about this libtool.

>>> fact.h

#include<stdio.h>
#include<math.h>

extern unsigned int fact_num(unsigned int num);

>>> fact_impl.c

#include "fact.h"
unsigned int fact_num(unsigned int input)
{
if(input==1)
{
printf("------Facttial----------\n");
return 1;
}
else
return(input * fact_num(input-1));
}

>>> fact_appln.c

#include "fact.h"
int main()
{
unsigned int input;
printf("\n------------------------------------------\n");
printf("Enter the Number : ");
scanf("%u", &input);
printf("Factorial is : %u\n", fact_num(input));
printf("------------------------------------------\n");
return 0;
}

These are the steps which followed to create the executables:

$libtool --mode=compile gcc -g -O -c fact_impl.c
$libtool --mode=compile gcc -g -O -c fact_appln.c
> *.lo will be created.

libtool --mode=link gcc -version-info 1:0:0 -o libfact.la -rpath /home/paramesh/libtool fact_impl.lo

> *.la will be created.

libtool --mode=link gcc -g -O -o fact fact_impl.o fact_appln.o libfact.la

> exe will be created.

Now, my ques is I include some changes to the library and compile fact_impl.c with lots of versions like, 2.0.0 & 3.0.0 & 4.0.0. Then how to make the application query to get a specific version (i.e) when I'm using the latest version 4.0.0, I'm in need to switch to 2.0.0, In tat case how to link the application to the version 2.0.0.?

Thanks in Advance.!!