2016-11-16 9 views
-1

私はcgoにCFLAGSを使ってCライブラリにリンクするGoパッケージを持っています。 Cライブラリは、ローカルデータファイルが正しく動作することを要求します。これは、事前に構築された3Dパーティライブラリであり、データファイルのパスを設定するオプションは利用できません。Goパッケージ内のデータファイルをコピーしますか?

パッケージのクライアントがローカルであり、データがlibによってロードされていても、&パッケージをビルドすると、データファイルはコピーされません。

パッケージのインストール中にカスタムファイルを近くに配置するオプションはありますか?

答えて

0

パッケージのインストール中にカスタムファイルを近くに配置するオプションはありますか?

いいえありません。ごめんなさい。これは、システムパッケージマネージャのような他の手段によって解決されなければならない。

0

私はhttps://github.com/jteeuwen/go-bindataツールを使用して、あなたのメインGoバイナリへの依存関係をコンパイルすることをお勧めします。この方法で複数のファイルを1つのバイナリ(異なるオペレーティングシステム用)に格納し、実行時に正しいファイルを選択することができます。私はいくつかのプロジェクトでそれを使用しています - このアプローチでは何の問題も見つかりませんでした。それにアクセスするための

go-bindata -o output_file.go input_data_directory/ 

、その後:だから

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

、あなたのアプリケーションを起動する - ちょうどあなたのアプリケーションが期待しているパスにあなたの内側の資産からファイルをコピーします。私はそれが助けて欲しい

関連する問題