0

我试图调用的命令行工具基本上将文件转换为另一种格式。

我正在使用这个[教程] [1],但遇到了麻烦。我不断得到invalid multibyte char (UTF-8) (SyntaxError)

我只是将我的命令行工具(使用 C 制作)倾倒在垃圾箱中,并试图让它工作。有人可以阐明我如何使这项工作正常进行吗?

4

2 回答 2

3

您收到的错误与 UTF-8 编码有关,这是 ruby​​-2.x 中的默认编码,所以我假设您使用的是 1.8 或 1.9,您应该考虑升级。

尝试将以下行添加到脚本的顶部:

#!/bin/env ruby
# encoding: utf-8

让我们知道它是否有效,并查看此线程以获取更多信息

编辑:现在我明白了你想要做什么。在此处查看位于bin/目录中的示例文件。您可以将可执行文件放到另一个目录data/中,例如,并通过 ruby​​ 调用:

#!/usr/bin/env ruby

prog = File.expand_path('../data/myprog', __FILE__)
ARGV.each do|a|
    system("#{prog} #{a}") # will return 'true' if run successfully
end

好的,现在试试。这也应该适用于多个文件,例如

编文件1.doc 文件2.doc ...

于 2014-01-18T22:56:06.580 回答
1

请阅读文档,以及如何使C软与ruby​​ 兼容的文档

一些注意事项:

  1. 将所有文件放在 gem 的适当文件夹中;
  2. 使 gemextconf兼容;
  3. 不要将已编译的二进制文件放入GitHub源代码中(在某些受限情况下,可以存储Windows 操作系统的预编译二进制文件);
  4. 如果您不编写OpenSource项目,请不要将其发布到GitHub中,而是使用BitBucket和 localhost(非Rubygems.org)来存储 gem。
于 2014-01-19T19:00:26.960 回答