undefined reference to `main' collect2: ld returned 1 exit status
- by sobingt
I am working on this QT project and i am making test cases for my project. Here is a small test case
#include <QApplication>
#include <QPalette>
#include <QPixmap>
#include <QSplashScreen>
#include <qthread.h>
#define BOOST_TEST_MAIN
#include <boost/test/unit_test.hpp>
#include <boost/make_shared.hpp>
#    include <boost/thread.hpp>
#include "MainWindow.h"
namespace
{
    const std::string dbname = "Project.db";
    struct SongFixture
    {
        SongFixture(const std::string &fixturePath)
        {
            // Create the Master file
            Master::creator();
            // Create/open file
            std::pair<int, SQLiteDbPtr> result = open(
                    dbname, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, 0);
            if (result.first != SQLITE_OK)
            {
                throw SQLiteError(result.first,
                        sqlite3_errmsg(result.second.get()));
            }
            SQLiteDbPtr &spDb = result.second;
            // Execute all the SQL from the fixture file
            execSQLFromFile(spDb, fixturePath);
        }
    };
    std::auto_ptr<SongFixture> pf;
}
class I : public QThread
{
public:
    static void sleep(unsigned long secs) {
        QThread::sleep(secs);
    }
};
void free_test_function()
{
   BOOST_CHECK(true );
}
test_suite*
init_unit_test_suite(int argc, char *argv[])
{
    // Create a fixture for the peer:
    // Manage fixture creation manually instead of using
    // BOOST_FIXTURE_TEST_CASE because the fixture depends on runtime args.
    std::ostringstream fixturePathSS;
    fixturePathSS << PROJECT_DIR << "/test/songs_fixture.sql";
    std::string fixturePath = fixturePathSS.str();
    pf.reset(new SongFixture(fixturePath));
    QApplication app(argc, argv);
    MainWindow window("artists");
    window.show();
    framework::master_test_suite().add( BOOST_TEST_CASE( &free_test_function ));
    return app.exec();
}
Well i am getting any error
  /usr/lib/gcc/x86_64-linux-gnu/4.6.1/../../../x86_64-linux-gnu/crt1.o:
  In function _start': (.text+0x20): undefined reference tomain'
  collect2: ld returned 1 exit status
pls help me you have a lead..thankz
I tired adding 
#define BOOST_TEST_MAIN  then i get
../test/UI/main.cpp: In function ‘boost::unit_test::test_suite* init_unit_test_suite(int, char**)’:
../test/UI/main.cpp:75:31: error: redefinition of ‘boost::unit_test::test_suite* init_unit_test_suite(int, char**)’
/usr/local/include/boost/test/unit_test_suite.hpp:223:1: error: ‘boost::unit_test::test_suite* init_unit_test_suite(int, char**)’ previously defined here
Well the program is working in Windows but in Linux the above mention problem is observed