1

Google Cloud SQL と MySQL サーバーを使用していくつかの GO ライブラリを開発しています。「appengine/cloudsql」をインポートしたところ、以下のエラーが発生しました。

cloud.go:20:2: cannot find package "appengine/cloudsql" in any of: /usr/local/Cellar/go/1.1.2/src/pkg/appengine/cloudsql (from $GOROOT) /Users/lameduck/myGo/src/appengine/cloudsql (from $GOPATH)

このパッケージappengine/cloudsqlは Google App Engine 専用であり、他の場所には存在しません。

単一のライブラリでGAEと他の環境の標準SQLライブラリにどのように使用できるか疑問に思っています。

PS: Google App Engine SDK を正しくセットアップできます。私の質問はそれとは関係ありません。私のライブラリが Google App Engine とスタンドアロン環境で一緒に動作することを願っています。(GAE 用のコードと他のデータベース用のコードは既に作成しています。) ユーザーがいくつかの構成をセットアップしなければならないことは問題ありません。しかし、ユーザーがライブラリのソース コードを変更する必要はありません。

助けてくれてありがとう。

4

2 に答える 2

3

問題を解決しました。ビルド制約を使用して適切なルーチンを使用し、エラーを回避しました。App Engine にはappengineというビルドの制約があります。

App Engine SDK には、新しいビルド制約用語「appengine」が導入されています。指定するファイル

// +build appengine は App Engine SDK によってビルドされ、go ツールによって無視されます。逆に、指定するファイル

// +build !appengine は App Engine SDK によって無視されますが、go ツールは問題なくビルドします。

PS:とにかく、私は他の答えに賛成票を投じました。ありがとうございました。

于 2013-11-08T15:54:40.343 に答える