ホームページ > バックエンド開発 > Golang > Linux/Ubuntu 上の Oracle ライブラリを使用して静的 CGO 実行可能ファイルを構築するにはどうすればよいですか?

Linux/Ubuntu 上の Oracle ライブラリを使用して静的 CGO 実行可能ファイルを構築するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-11-29 09:19:09
オリジナル
169 人が閲覧しました

How to Build a Static CGO Executable with Oracle Libraries on Linux/Ubuntu?

Linux/Ubuntu 上の Oracle ライブラリを使用して静的 CGO 実行可能ファイルをビルドしようとしています: 予期しないエラー

問題:

Linux/Ubuntu 上の CGO および Oracle ライブラリに静的にリンクされた実行可能ファイルの結果は次のとおりです。ビルド プロセス中のエラー、具体的には Oracle ライブラリ -lclntsh の検出に失敗しました。

解決策:

  1. 静的ライブラリ (libclntst. a):
    a.まだ完了していない場合は、完全な Oracle データベース パッケージをインストールします。
    b. $ORACLE_HOME/bin/genclntst を実行して、欠落している静的ライブラリ libclntst12.a を生成します。
  2. 生成されたライブラリとのリンク:
    a。生成されたライブラリ libclntst12.a.
    b を含めるようにビルド コマンドを変更します。例: go build -work -x -ldflags " -v -linkmode external -extldflags -static -L/usr/lib/oracle/12.1/client64/lib -lclntst12" ${MAIN_SRC}
  3. 欠落しているシンボル (存在する場合) の処理:
    a. ldd を使用して、静的にリンクされた実行可能ファイル内の未解決のシンボルをチェックします。
    b. nm を使用して、Oracle ライブラリ内で欠落しているシンボルのソースを見つけます。
    c.追加のライブラリとリンクして、欠落しているシンボルを解決します。
  4. 追加メモ:
    a.静的リンクでは、すべての依存関係を手動で解決する必要があります。
    b.古い Oracle バージョンの場合、ICC ランタイムからの追加の静的ライブラリが必要になる場合があります。

以上がLinux/Ubuntu 上の Oracle ライブラリを使用して静的 CGO 実行可能ファイルを構築するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート