Symfoware

Symfowareについての考察blog

luvi 別ファイルに記載したプログラムを読み込む

Ubuntu + luviで色々試しています。
luviでLuaプログラムをバイナリの実行形式に変換する

よく使う関数は別のファイルにまとめておき、
使いまわせるようにしておきたいものです。

main.luaから別ファイルの関数を呼び出す方法を調べてみました。



utils.lua



main.luaと同じ階層にutils.luaというファイルを作成しました。

668_01.png

ここに記載している関数を呼び出してみます。

・utils.lua


  1. function say_hello(name)
  2.     print(string.format('hello %s', name))
  3. end





本体のプログラムでrequireしてみます。

・main.lua


  1. require('utils')
  2. say_hello('symfo')




ファイルが見つからないエラーになりました。


$ ./luvi my_app
[string "bundle:main.lua"]:1: module 'utils' not found:
    no field package.preload['utils']
    no file './utils.lua'
    no file '/usr/local/share/luajit-2.1.0-beta1/utils.lua'
    no file '/usr/local/share/lua/5.1/utils.lua'
    no file '/usr/local/share/lua/5.1/utils/init.lua'
    no file './utils.so'
    no file '/usr/local/lib/lua/5.1/utils.so'
    no file '/usr/local/lib/lua/5.1/loadall.so'





luviで別ファイルのプログラムをロードするには、
bundle.registerしてやる必要があります。
https://github.com/luvit/luvi/blob/master/samples/test.app/main.lua


main.luaを修正。

・main.lua


  1. local bundle = require('luvi').bundle
  2. bundle.register("utils", "utils.lua")
  3. require('utils')
  4. say_hello('symfo')




これでutils.luaの関数が呼び出せませした。


$ ./luvi my_app
hello symfo




関連記事

テーマ:プログラミング - ジャンル:コンピュータ

  1. 2016/02/17(水) 22:20:39|
  2. Lua
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
<<luvi + luv http postのサンプル | ホーム | luvi luvを使用してhttp getリクエストを実行する>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://symfoware.blog68.fc2.com/tb.php/1844-7a9a0c0b
この記事にトラックバックする(FC2ブログユーザー)