2014-03-27 95 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中解脫出來,它就像預期的那樣開始工作。