ホームページ > バックエンド開発 > Golang > デバッグ情報を使用せずに Go コードをコンパイルするにはどうすればよいですか?

デバッグ情報を使用せずに Go コードをコンパイルするにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-11-09 10:07:02
オリジナル
917 人が閲覧しました

How to Compile Go Code Without Debugging Information?

デバッグ情報なしで Go コードをコンパイルする

Go では、コンパイル中にデフォルトでデバッグ情報が含まれるため、コードのデバッグが容易になります。 。ただし、この情報を抽出してコードを逆コンパイルすることもできます。これを防ぐには、コンパイル中にデバッグ情報を除外する必要があります。

-ldflags の使用

-ldflags フラグを使用して、リンカーにオプションを渡すことができます。シンボル テーブルとデバッグ情報を削除するには、-s -w を -ldflags オプションに追加します。以下に例を示します。

go build -ldflags="-s -w" main.go
ログイン後にコピー

Go 1.13 に関する追加のヒント

Go 1.13 以降では、-trimpath フラグを使用してファイル パスの長さを短縮できます。実行可能ファイルに保存されます。これにより、生成されるバイナリのサイズをさらに最小限に抑えることができます。

gccgo に関する注意

GCC に基づく Go コンパイラである gccgo を使用しても問題は解決しないことに注意することが重要です。問題。 gccgo を使用して -g フラグを指定せずにコンパイルすると、デバッグ情報の欠落に関連するエラーが発生します。

推奨事項

デバッグ情報を完全に削除するには、次のようにします。 -ldflags="-s -w" オプションを使用することをお勧めします。これにより、シンボルとデバッグ情報が効果的に削除され、コンパイルされたバイナリの逆コンパイルが困難になります。

以上がデバッグ情報を使用せずに Go コードをコンパイルするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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