我正在尝试编写类似于代码搜寻的游戏(https://www.codehunt.com/about.aspx) 那么这将如何工作,玩家可以修改.cpp文件,该文件将被编译并在代码中运行,但是我有关于如何编译它的问题。 我正在使用最新的g ++编译器,这就是我尝试实现这个目标的方法:
void Builder::build(const char* file){
std::string s = "g++ ";
s += file;
s += " -o test.o";
system(s.c_str());
}
我们获取.cpp文件的名称,这段代码应该构建test.o 这只是一个测试,它可能会变得更复杂,我只是想测试编译器是否可以在代码中工作,但是当我尝试运行时会收到此错误消息:
c:/mingw/bin/../lib/gcc/mingw32/4.9.3/../../../libmingw32.a(main.o):(.text.startup+0xa7):undefined reference to 'WinMain@16'
collect2.exe: error: ld returned 1 exit status
mingw的路径设置正确,我检查了。 我使用的是Windows 8.1,g ++ 4.9.3和Code :: Blocks。
答案 0 :(得分:1)
在Windows执行中,通常不会从main
函数开始,它从WinMain
函数开始,该函数需要一些特定于Windows的参数。你应该阅读,例如this WinMain
reference了解更多信息。
某些程序似乎仍然从main
函数开始,因为有一个目标文件与程序相关联,该程序包含调用WinMain
函数的main
函数。
答案 1 :(得分:0)
好吧,我是一个白痴,所以问题是我试图建立一个主要功能的文件。这是最初的deliberat设计选择,但是......好吧。对于那个很抱歉。 感谢Joachim Pileborg带领我去。