使用lua靜態庫的問題

2022-02-03 03:14:38 字數 631 閱讀 7015

最近在搞lua的時候遇到乙個問題,就是使用lua靜態庫的時候總是出現error lnk2019: 無法解析的外部符號 "void __cdecl lual_openlibs(struct lua_state *)"還有其它的一些函式, lual_newstate, lua_close, lual_loadfile 這幾個函式也是無法解析的外部符號. 先說說一下生成lua靜態庫的環境,專案型別,靜態庫,呼叫約定:__cdecl (/gd), 編譯為c++**(/tp), 生成靜態庫.

使用lua的環境,控制台應用程式,/gd, /tp都是一樣的,但是在包含lua標頭檔案的時候沒有使用extern "c", 而是直接#include的.

使用了extern "c" 之後, 就沒有這個問題了

看了一下lua靜態庫,專案設定的是/gd, /tp, 但是檔案都是.c結尾的檔案,即c型別的檔案,檢視了一下檔案的屬性, 檔案的屬性顯示的是/tc, 即, 檔案編譯成c型別的檔案, 我將這些c檔案的屬性也改成了/tp, 再次生成靜態庫使用, 不使用extern "c", 也是直接#include, 結果還是出錯.

我懷疑這個lib庫就是按c的方式生成的,根本沒有按專案中定義的按c++的方式生成的,當然了,這只是我的猜測,現在手上沒有lib匯出介面檢視工具,無法分析這個問題.後面分析的再加上來.

vs2012編譯使用lua 5 2靜態庫

2.開啟vs2012新建空白工程test 3.在解決方案中新增新的lib工程 win32 選擇靜態lib 不要預編譯頭 lualib 4.配置lualib工程 a 將lua源 下的src檔案拷入lualib資料夾下,並在工程中匯入 b lualib工程屬性c c genaral additional...

lua使用table問題

今天在開發的時候,自己建立了乙個table。建立 如下 self.skill value table self.skill table for i 1,8 do self.skill table i self.skill value table end這樣每次去改變self.skill table ...

Lua載入C庫的問題

寫了乙個測試lua呼叫的c庫,如下 標頭檔案 ifndef c lib h file define c lib h file extern c int mymax lua state l endif c lib h file cpp檔案 include clib.h include include ...