首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有外部二进制程序的Lua独立程序

具有外部二进制程序的Lua独立程序
EN

Unix & Linux用户
提问于 2018-10-04 15:24:15
回答 1查看 385关注 0票数 0

我正在用LuaLaTex给我们写一个小程序。其目的是生成具有给定uuid的qr代码,qr代码打印在页面上,uuid存储在pdf的元数据中。

不过,我认为最好在texmf文件夹中有一个可执行文件,由我的文档中的类文件调用。要生成我使用的(Linux) qrencode & convert与这个lua脚本uuidqrcode.lua的qr代码:

代码语言:javascript
复制
#!/usr/bin/env lua 

function gen_qr_uuid ()
    local uuid = require 'uuid'
    -- uuid.seed(math.randomseed(os.time()))
    local encode = uuid()
    local name = encode
    local format = 'pdf'

    local qrencode = string.format(
        [[qrencode \
            --type=EPS \
            --output=%s.eps \
            --size=10 \
            --level=H \
            --margin=0 \
            --casesensitive \
            %s \
            ]], 
            name,
            encode)

    local convert = string.format(
        [[convert \
            %s.eps \
            %s.%s \
            ]],
            name,
            name,
            format)

    local rmeps = string.format("rm %s.eps", name)

    os.execute(qrencode)
    os.execute(convert)
    os.execute(rmeps)
end

for i=1, (arg[1] or 1) do
    gen_qr_uuid ()
end

要将此脚本转换为独立的可执行文件,我使用了luastatic和这个脚本makeluaexec

代码语言:javascript
复制
#!/bin/sh
luastatic $1 `pkg-config --libs --cflags lua`

这样我就有了一个可执行文件,但是它依赖于qrencode & convert,所以当我移动到另一台Linux机器时,必须安装这些工具。有办法将这些工具打包到我自己生成的可执行文件中吗?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2018-10-05 03:11:44

是。qrencode程序只是libqrencode的包装器,convert命令只是ImageMagick的包装器。与其调用这些命令,不如直接从代码中调用库函数。像https://github.com/isage/lua-imagickhttps://github.com/vincascm/qrencode这样的绑定将对此非常有用。然后,当您调用luastatic时,只需传入相关的静态库。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/473282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档