我有一个简单的 .cpp 文件,如下所示:
void showMenu()
{
std::cout << "Hi!";
}
int main()
{
showMenu();
return 0;
}
此外,我有一个空的 google-test,如下所示:
TEST(Name, SubName)
{
}
当我尝试编译时,我得到:
multiple definition of `showMenu()'
和:
multiple definition of `main()'
错误。 我该如何设置我的配置,以便我能够在我去的时候运行我的 main,并在我想要的时候运行我的 google-test,而不会相互冲突?
最佳答案
googletest 库已经包含了 main()
的定义。
要解决这个问题,请将您对 showMenu()
的定义分离到另一个库中,并将该库分别链接到您的测试运行程序和生产性可执行文件。
并且不要#include
您的.cpp
文件中包含测试代码。
关于c++ - 尝试使用谷歌测试编译 main 时获取 "multiple definition of func_name",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52190174/