gtest和lua不兼容?

时间:2014-03-27 16:15:13

标签: c++ lua googletest

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

我正在使用Lua 5.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或类似的东西有些冲突。有人能说清楚这个吗?

如果我弄清楚的话,我会继续深入挖掘并更新。

1 个答案:

答案 0 :(得分:0)

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