我是 C++ 初学者,正在尝试运行一些入门代码。我有以下文件,
myTest.h
////////
#ifndef __myTest_h__
#define __myTest_h__
#include <string>
using std::string;
class myTest{
public:
int main(int, char const**);
};
#endif // __myArray_h__
myTest.cpp
//////////
#include<iostream>
#include<string>
#include "myTest.h"
using namespace std;
int myTest::main(int argc, char const *argv[])
{
std::cout<< "Hello World/n";
return 0;
}
当我尝试使用命令 g++ myTest.cpp -o myTest.out
从 Mac OS 的终端运行时,我在终端中收到以下错误,
Undefined symbols for architecture x86_64:
"_main", referenced from:
implicit entry/start for main executable
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
C++入门如何改代码?我可以使用命令 -v
提供更多信息,如果需要,请告诉我。
最佳答案
与 Java 或 C# 不同,您不能在类中拥有 main
函数,它必须是全局非成员函数。
你可以创建一个非常简单的 main
函数,然后调用你的成员函数 main
函数:
int main(int argc, char* argv[])
{
myTest myTestObject;
return myTestObject.main(argc, argv);
}
请注意,我需要创建一个 myTest
类的实例,这是因为 myTest::main
函数不是 static
.如果你让它成为static
,比如
class myTest
{
public:
static int main(int, char *[]);
...
};
那么您的非成员 main
函数可能如下所示:
int main(int argc, char* argv[])
{
return myTest::main(argc, argv);
}
关于c++ - 如何运行这个简单的 C++ 程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38100123/