使用Code :: Blocks中的g ++在代码中编译

时间:2016-05-02 12:44:34

标签: windows c++11 g++

我正在尝试编写类似于代码搜寻的游戏(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。

2 个答案:

答案 0 :(得分:1)

在Windows执行中,通常不会从main函数开始,它从WinMain函数开始,该函数需要一些特定于Windows的参数。你应该阅读,例如this WinMain reference了解更多信息。

某些程序似乎仍然从main函数开始,因为有一个目标文件与程序相关联,该程序包含调用WinMain函数的main函数。

答案 1 :(得分:0)

好吧,我是一个白痴,所以问题是我试图建立一个主要功能的文件。这是最初的deliberat设计选择,但是......好吧。对于那个很抱歉。 感谢Joachim Pileborg带领我去。