C++ gtest和lua不兼容?

C++ gtest和lua不兼容?,c++,lua,googletest,C++,Lua,Googletest,我经常使用gtest对C/C++代码进行自动测试。我已经开始探索在一些软件中添加Lua以实现可扩展性。问题是,当我同时包含gtest和lua时,我最终没有得到一个正在运行的gtest程序,而是得到一个lua命令提示符 我正在使用Lua5.1.5,还没有在5.2中试用过 下面是一个简单的例子: #include "gtest/gtest.h" extern "C" { #include "lua.h" } using namespace std; class lua_test : public

我经常使用gtest对C/C++代码进行自动测试。我已经开始探索在一些软件中添加Lua以实现可扩展性。问题是,当我同时包含gtest和lua时,我最终没有得到一个正在运行的gtest程序,而是得到一个lua命令提示符

我正在使用Lua5.1.5,还没有在5.2中试用过

下面是一个简单的例子:

#include "gtest/gtest.h"
extern "C" {
#include "lua.h"
}

using namespace std;

class lua_test : public ::testing::Test {

protected:
    lua_test(){}
    virtual ~lua_test(){}
    virtual void SetUp()
    {
    }

    virtual void TearDown()
    {
    }
};

TEST_F(lua_test, my_test)
{
}
我怀疑这个问题与定义main或类似的东西有冲突。有人能解释一下吗


如果我发现了问题,我会继续深入挖掘并更新。

没关系,我发现了问题所在。我正在使用CMake构建依赖项。我这样做也是为了建立liblua.a。但是,当我创建CMakeLists.txt文件时,我只包含了每个头文件和源文件,而没有对lua的Makefile给予足够的关注(这是我在匆忙中得到的)。所以我包括了定义main的lua.c。一旦我把它从liblua拿出来,它就开始按预期工作了