2011-09-27 59 views
0

我現在正在實現gtest,並且它給了我一個錯誤:main在此先前定義。錯誤:'int main(int,char **)'此前在C++中定義的

這裏的utest.cpp

// Bring in my package's API, which is what I'm testing 
#include "../src/test.cpp" 
// Bring in gtest 
#include <gtest/gtest.h> 

// Declare a test 
TEST(TestSuite, testCase1) 
{ 
    EXPECT_EQ(5,getX(5)); 
} 

// Run all the tests that were declared with TEST() 
int main(int argc, char **argv){ 
    testing::InitGoogleTest(&argc, argv); 
    return RUN_ALL_TESTS(); 
} 

及這裏的我測試 TEST.CPP代碼

#include "ros/ros.h" 
#include "std_msgs/String.h" 
#include <Project2Sample/R_ID.h> 
#include <geometry_msgs/Twist.h> 
#include <nav_msgs/Odometry.h> 
#include <sensor_msgs/LaserScan.h> 


#include <sstream> 
#include "math.h" 

int getX(int x) 
{ 
    return x; 
} 

int main(int argc, char **argv) 
{ 
    return 0; 
} 

沒有什麼在TEST.CPP主,但實際的代碼都會有一些碼主要。

我沒有頭文件utest和測試cpp文件

我試圖

#ifndef UTEST_H 
#define UTEST_H 

,並沒有解決錯誤。

回答

6

錯誤消息指出問題所在,您有兩個main()函數。我相信你想從test.cpp中刪除重複的main()

+0

它的工作原理!謝謝:) 5分鐘後會接受你的回答! :) – Leanne

相關問題