main的多个定义

Multiple definitions of main

本文关键字:定义 main      更新时间:2023-10-16

如何在c++程序中正确实现Lua ?我下载了Lua源代码,把。C文件放在我的src文件夹里,把。h文件放在我的include文件夹里,把Lua .h包含在我的程序源代码里(当然要加上extern "C"{}),然后点击"Build"。

这就是所有教程告诉我在c++项目中使用Lua的方法。

但现在我得到错误"多重定义的主要"和一些符号在Lua代码,无法解决。我知道第一个错误意味着什么(冲突,因为Lua有一个main,我的程序也有一个),但我该如何解决它?

或者我对在c++程序中实现Lua的理解是完全错误的?

检查以确保您的源代码中没有包含luac.c, lua.c以及Lua中包含的任何其他程序的源代码。Lua的源代码包括一些额外的实用程序(例如luac),您可能只是将它们包含在项目中而忘记删除它们,从而导致有多个main

简而言之,这些是单独的程序,您不能添加到您的项目中。如果可以,只要正常构建Lua,链接到库,并像往常一样包含头文件。

所以,在你误解如何使用Lua的问题上,你可能在某种程度上误解了。将Lua的源代码复制到您的代码中是完全可能的,尽管可能不太可取。您真正需要做的是在终端中提取Lua源并构建它。然后(根据Lua的INSTALL文档),您需要键入make platform,在那里您将用当前使用的任何平台替换platform(即,我会使用macosx,您可能会使用linux,参考INSTALL支持的平台)。在那之后,如果你想安装它或不安装它取决于你,但你只需要执行make install(或sudo make install)来完成它。

之后,在编译链接到Lua(例如,-llua)时添加适当的链接器标志,或者在编辑器中更改项目的设置来做大致相同的事情。也就是说,您需要参考Lua提供的INSTALL文档,以获得有关此操作的完整说明。

我将Lua嵌入到我的项目中,这是我的首选方式,IMO:将Lua编译为静态库。

在Lua.c和Luac.c中注释两个main()块,然后点击build并再次运行。