デバッグ情報なしで 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 サイトの他の関連記事を参照してください。