错误:LINK:致命错误LNK1561:必须定义入口点c ++

时间:2016-12-10 18:04:13

标签: c++ googletest

尝试编译代码时出现以下错误:error LNK1561: entry point must be defined.

背景:我正在尝试运行Win32 CONSOLE应用程序并使用Google Tests框架。

我有我的主要功能设置,并且我已经检查过我的Linker在我已经看到的许多问题中根据其他一些建议设置为Console (/SUBSYSTEM:CONSOLE)。我不确定为什么它不喜欢我的主要功能,因为它被定义为切入点。

这是我的代码:

bob.h

#ifndef BOB_BOB_H
#define BOB_BOB_H

#include <string>
using namespace std;

namespace bob {
    string hey(const string&);
}

#endif

bob.cpp

#include "bob.h"

using namespace std;

namespace bob {

string hey(const string& theString) 
{
    return "Whatever."
}

}

bob_tests.cpp

// bob_tests.cpp : Defines the entry point for the console application
//

#include "bob.h"
#include <gtest/gtest.h>

int main(int argc, char** argv) {
    testing::InitGoogleTest(&argc, argv);
    return RUN_ALL_TESTS();
}

TEST(Bob, stating_something)
{
    EXPECT_STREQ("Whatever." bob::hey("Tom-ay-to, tom-aaaah-to."));
}

2 个答案:

答案 0 :(得分:1)

进一步详细说明Mihaylov的职位。

在VS中,更新项目的属性,确保将项目 No Entry Point 链接程序属性设置为 NO

项目属性页/链接器/高级/否入口点=否

Entry Point

下一步更新链接器子系统属性

项目属性页/链接器/系统/子系统=控制台(/ SUBSYSTEM:CONSOLE)

Project Property Page

答案 1 :(得分:0)

您必须设置入口点。我看到你写的&#34;控制台(/ SubSystem:CONSOLE)&#34;所以我认为你在Visual Studio上,所以你需要做的是去Linker-&gt; Advanced-&gt;(确保&#34; No Entry&#34;设置为&#34; No&#34; ) - &gt;条目必须设置为&#34; main&#34;。