2016-11-16 72 views
-1

我有一个使用CFLAGS for cgo链接到C库的Go包。 C库反过来需要本地数据文件正常工作。它是预建立的3d聚会库,并且设置数据文件路径的选项不可用。在Go包中复制数据文件?

如果软件包的客户端是本地数据并且数据是通过lib加载的,但是当我构建安装包时,一切都按预期工作,数据文件不会被复制。

是否有任何选项来把自定义的文件去附近的包在安装包?

回答

0

是否有任何选项把自定义的文件去附近的包在安装包?

没有没有。抱歉。这必须通过系统软件包管理器等其他方式来解决。

0

我会建议使用https://github.com/jteeuwen/go-bindata工具编译依赖到主围棋二进制文件。这样,您就可以将多个文件存储在单个二进制文件中(针对不同的操作系统),并在运行时选择正确的文件。我在几个项目中使用它 - 没有发现这种方法的任何问题。

go-bindata -o output_file.go input_data_directory/ 

,然后对其进行访问:

data, err := Asset("some_important_file") 
if err != nil { 
    // Asset was not found. 
} 

所以,当你启动应用程序 - 只是从你的内部资产的文件复制到你的应用程序期待的路径。我希望有所帮助。