1. 程式人生 > >C++對lua靜態庫的使用

C++對lua靜態庫的使用

錯誤標記: 對‘lua_pushnumber(lua_State*, double)’未定義的引用

當C++在呼叫lua靜態庫的時候,由於使用的lua庫是純C寫的,所以在引用 lua 庫的標頭檔案時,應該按下面方式來包含:

extern "C"{
    #include  "lua.h"
};

extern “C" 是讓編譯器在連結是按照C編譯的方式來查詢符號名。否則將預設安裝C++編譯方式的符號名來統一處理。因此需要特殊處理一下。

也許你的專案在某編譯器版本下並沒有做extern"C" 處理,然而連結是正確,但是當你換了一個編譯器版本就出問題了,那麼不妨試試這個。

這個問題,坑了我2個多小時。有時候基本功真的是很神奇的技能,總在你不知所措的時候,給你指明方向。