問題タブ [gccgo]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
45267 参照

go - 「gc」と「gccgo」の主な違いは何ですか?

人気のある 2 つの Go コンパイラ、「gc」と「gccgo」の主な違いは何ですか? ビルド性能?実行時のパフォーマンス? コマンドラインオプション? ライセンス?

どちらが最適かについての意見を求めているわけではなく、それらの違いの基本的な概要を示しているだけなので、どちらが自分のニーズに最適かを判断できます。

0 投票する
2 に答える
1345 参照

go - .so ファイルをインポートして使用する方法

gccgo で作成した .so ファイルを main.go にインポートする方法の例 (コード) を教えてください。

0 投票する
2 に答える
1739 参照

go - gccgo でビルドされたバイナリが小さいのはなぜですか (他の違いの中でも特に?)

私は gc と gccgo を試していて、奇妙な動作に遭遇しました。

ある定理をテストするためにかつて書いたプログラムを使用して、次の結果を得ました: (読みやすくするために不要な情報を削除しました)

次のパターンが見られます。

  1. で構築されたバイナリgccgoは、サイズが大幅に小さくなります (そして、ストリッピングはこの違いを変えるのに役立ちません)
  2. でビルドされたバイナリgcは実行が高速です
  3. gccgoで構築するよりも構築するのに少し時間がかかりますgc

他の go プログラムもいくつかテストしましたが (それほど広範囲ではありませんが)、それらはすべて同じ動作を示しました。

これは、この回答が述べていることと矛盾しているようです:

要するに: gccgo: より多くの最適化、より多くのプロセッサ。

コンパイルにより多くの時間を必要としながら、より多くの最適化はより高速なバイナリを意味すると思います...

この3パターンの理由は?

0 投票する
1 に答える
2931 参照

linux - Golang クロスコンパイル: gccgo - 認識されないコマンド ライン オプション `-marm`

Linux/arm 用の Go アプリをコンパイルしようとしていますが、Ubuntu マシンで問題が発生し続けています。ソースディレクトリで実行するGOOS=linux GOARCH=arm go buildと、次のバリエーションである大量のエラーが発生します。

# github.com/huin/mqtt

gccgo: エラー: コマンド ライン オプション `-marm` を認識できません

実行gccgo --helpすると、-g、-f -m (およびその他) で始まるオプションが gccgo によって開始されたすべてのサブプロセスに渡されることが通知されるため、どのプロセスに -marm を送信しているのかわかりません。

手がかりはありますか?Ubuntu 14.10 LTS、64 ビット

0 投票する
2 に答える
843 参照

go - C から呼び出される Go の整数除算

このプログラムで整数除算を実行できます:

次に、+、-、*、および / の関数を含むプログラムを go で作成しました。そして、これらの各関数を呼び出して算術演算を実行するプログラムを C で作成しました。除算を除いて、コードは正常に機能します。

関数を含む go ファイルは次のとおりです: (calc.go)

これらの関数を呼び出す C プログラムは次のとおりです: (calcc.c)

コマンドを使用して端末でコンパイルしました:

gccgo -c calc.go

gcc calc.o calcc.c -o メイン

そして、このエラーが発生しました: `__go_runtime_error' への未定義の参照 collect2: エラー: ld が 1 終了ステータスを返しました

これを修正するにはどうすればよいですか?

0 投票する
1 に答える
1405 参照

c - C からリンクされた net/http.Server で Go 1.5 buildmode=c-archive を使用する

Go 1.5 の今後のリリースには、Go シンボルをエクスポートしてリンクし、C コードから呼び出すことができる新しいビルドモードが付属しています。私はそれをいじっていて、基本的な「Hello world」の例が機能するようになりましたが、今、開始する Go ライブラリをリンクしようとしていますが、net/http.Server失敗しています。コードは次のようになります (こちらからも入手できます)。

gohttplib.go:

例/c/main.c:

静的にリンクされたオブジェクトとヘッダーの生成は正常に機能します。

しかし、それに対するコンパイルは失敗しています:

これは、OS X 10.9.5 の Go github リポジトリ (38e3427) の最新バージョンを使用しています。Go 1.5 がまだリリースされておらず、それが機能するという保証がないことは理解していますが、これは教育目的で行っており、何か不足していると思われます。

関連バージョン: