主要的多个定义

blu*_*rnd 4 c++ lua program-entry-point definition

如何在C++程序中正确实现Lua?我下载的Lua源,把我的src文件夹中的.c文件和.h文件在我的包含文件夹,包含在我的程序的源代码lua.h(用EXTERN当然"C" {}),并点击"Build" .

这就是所有教程告诉我将Lua与C++项目一起使用的方法.

但现在我得到错误"main的多重定义"和Lua代码中的一些无法解析的符号.我理解第一个错误意味着什么(冲突因为Lua有一个主要而我的程序也有一个),但我怎么解决呢?

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

nil*_*nil 12

检查以确保您没有包含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),要么在您选择的编辑器中更改项目的设置以执行大致相同的操作.也就是说,您需要参考INSTALLLua提供的文档以获取有关此内容的完整说明.