Linux下使用靜態(tài)鏈接方式如何使用Lua
Linux下使用靜態(tài)鏈接方式如何使用Lua是本文要介紹的內(nèi)容,主要是來(lái)學(xué)習(xí)在linux中使用lua的使用方式,具體內(nèi)容的實(shí)現(xiàn)來(lái)看本文詳解。
環(huán)境是ubuntu9.04
首先去lua官方網(wǎng)站下載lua***版
解壓縮之后,從shell中進(jìn)入目錄,然后執(zhí)行make
會(huì)給個(gè)提示,選擇make的版本
因?yàn)槭莑inux下,就打make linux
然后開始構(gòu)建了,等下就好,進(jìn)入src目錄,里面有l(wèi)iblua.a
拷貝到項(xiàng)目需要的目錄。
同時(shí)需要拷貝的是.h我建議把那頭文件都拷貝到/usr/include下,這樣以后用的時(shí)候方便,要不每次還得在gcc中加命令行
在gcc中指定頭文件參見:
- http://blog.chinaunix.net/u/28781/showart.php?id=401631
然后寫好代碼就可以編譯了。我的測(cè)試代碼是:
代碼
- void load (char *filename, int *width, int *height) {
- lua_State *L = lua_open();
- luaopen_base(L);
- luaopen_io(L);
- luaopen_string(L);
- luaopen_math(L);
- if (luaL_loadfile(L, filename) || lua_pcall(L, 0, 0, 0))
- error(L, "cannot run configuration file: %s",
- lua_tostring(L, -1));
- lua_getglobal(L, "width");
- lua_getglobal(L, "height");
- if (!lua_isnumber(L, -2))
- error(L, "`width' should be a number\n");
- if (!lua_isnumber(L, -1))
- error(L, "`height' should be a number\n");
- *width = (int)lua_tonumber(L, -2);
- *height = (int)lua_tonumber(L, -1);
- lua_close(L);
- }
- int main()
- {
- return 0;
- }
編譯的命令行是:
- gcc test.c -L$HOME/Code/luatest -llua -lm
需要注意,gcc不用在靜態(tài)庫(kù)前加lib,得到的是liblua。。我剛開始編譯的時(shí)候總提示找不到,后來(lái)在群里請(qǐng)教了一下大牛,解決了
還有-lm也是必須的,因?yàn)閘ua需要用到libm這個(gè)庫(kù)。
小結(jié):Linux下使用靜態(tài)鏈接方式如何使用Lua的內(nèi)容介紹完了,希望通過(guò)本文的學(xué)習(xí)能對(duì)你有所幫助!