2014-03-27 65 views
0

我经常使用gtest来自动测试C/C++代码。我已经开始探索在某些软件中添加Lua以实现可扩展性。问题是,当我同时包含gtest和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) 
{ 
} 

我怀疑的问题是与定义主或类似的东西有些冲突。任何人都可以阐明这一点吗?

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

回答

0

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