尝试使用Google Tests编译main时获取“ func_name的多个定义”

时间:2018-09-05 16:59:47

标签: c++ googletest

我有一个简单的.cpp文件,如下所示:

void showMenu()
{
    std::cout << "Hi!";
}

int main()
{
    showMenu();
    return 0;
}

此外,我有一个空的Google测试,看起来像这样:

TEST(Name, SubName)
{

}

当我尝试编译时,我得到:

multiple definition of `showMenu()'

和:

multiple definition of `main()'

错误。 如何设置我的配置,以便我去时可以运行我的主程序,而我想要时可以运行我的google-test,而又不会互相冲突?

1 个答案:

答案 0 :(得分:1)

googletest库已经包含main()的定义。

要解决此问题,请将showMenu()的定义分离到另一个库中,然后将其分别链接到testrunner和生产性可执行文件。

也不要#include用测试代码.cpp文件。