ошибка: 'int main (int, char **)', ранее определенная здесь в C ++ - PullRequest
0 голосов
/ 27 сентября 2011

Я сейчас внедряю gtest, и он выдает мне ошибку: main определен здесь.

Вот 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;
}

В main test.cpp ничего нет, но в основном коде будет несколько кодов в main.

У меня нет заголовочных файлов для utest и test cpp файлов

Я пытался

#ifndef UTEST_H
#define UTEST_H

и не решил ошибку.

1 Ответ

6 голосов
/ 27 сентября 2011

В сообщении об ошибке указывается, в чем проблема, у вас есть две main() функции. Я полагаю, вы хотите удалить дубликат main() из test.cpp.

...