2016-11-16 78 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. 
} 

所以,當你啓動應用程序 - 只是從你的內部資產的文件複製到你的應用程序期待的路徑。我希望有所幫助。