尝试编译代码时出现以下错误: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."));
}
答案 0 :(得分:1)
进一步详细说明Mihaylov的职位。
在VS中,更新项目的属性,确保将项目 No Entry Point 链接程序属性设置为 NO 。
项目属性页/链接器/高级/否入口点=否
下一步更新链接器子系统属性
项目属性页/链接器/系统/子系统=控制台(/ SUBSYSTEM:CONSOLE)
答案 1 :(得分:0)
您必须设置入口点。我看到你写的&#34;控制台(/ SubSystem:CONSOLE)&#34;所以我认为你在Visual Studio上,所以你需要做的是去Linker-&gt; Advanced-&gt;(确保&#34; No Entry&#34;设置为&#34; No&#34; ) - &gt;条目必须设置为&#34; main&#34;。