我经常使用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或类似的东西有些冲突。有人能说清楚这个吗?
如果我弄清楚的话,我会继续深入挖掘并更新。
答案 0 :(得分:0)
没关系,我想出了这个问题。我正在使用CMake来构建我的依赖项。我这样做也是为了构建liblua.a。但是当我创建CMakeLists.txt文件时,我只是包含了每个头文件和源文件,而没有对lua的Makefile给予足够的关注(这就是我匆忙中得到的)。所以我包含了lua.c,它定义了main。一旦我把它从liblua中取出,它就开始按预期工作了。