問題タブ [gnu-toolchain]

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 に答える
90 参照

haskell - パスの長さの制限による Windows での cabal サンドボックス ビルド エラーを回避するにはどうすればよいですか?

しばらくの間、cabal サンドボックスでインストール/ビルドを行うと、Windows マシンで失敗することが多いという事実に当惑していました。最終的に、特定のパスが制限を超えたことが原因であることがわかりましたMAX_PATH(パスは事実上 255 文字に制限されています)。

具体的な例として、cabal install data-default-instances-old-locale-0.0.1cabal サンドボックス フォルダー内で実行しようとすると失敗します。プロセスのある時点で、Cabal はar.exeのようなパスで呼び出しますdist/dist-sandbox-72eb259b\build\libHSdata-default-instances-old-locale-0.0.1-6jcjjaR25tK4x3nJhHHjFM.a-45644\libHSdata-default-instances-old-locale-0.0.1-6jcjjaR25tK4x3nJhHHjFM.a。これは、temp ディレクトリ (単純に に設定したC:\Temp) の下の作業フォルダーに相対的であるため、フル パスはC:\Temp\data-default-instances-old-locale-0.0.1-18744\data-default-instances-old-locale-0.0.1\dist\dist-sandbox-72eb259b\build\libHSdata-default-instances-old-locale-0.0.1-6jcjjaR25tK4x3nJhHHjFM.a-18744\libHSdata-default-instances-old-locale-0.0.1-6jcjjaR25tK4x3nJhHHjFM.a.

その最終的なパスの長さは 272 文字で、255 の制限をはるかに超えています。

Windows でより長いパスを処理することは可能ですが、それは自明ではなく、いずれにせよ、ar はそれらを処理するために必要なことを何もしていないようです (これは GNU ツール チェーンの単なるポートであるため、驚くべきことではありません)。

これは予見可能な将来の状況だと感じていますが、誰かが回避策を考えることができるでしょうか?

0 投票する
3 に答える
557 参照

bash - 大きなファイルの uniq -c 代替を見つける

大きなファイル (50 GB) があり、その中のさまざまな行の出現回数を数えたいと思います。通常、私は使用します

ただし、ファイルが十分に大きいため、並べ替えに非常に多くの時間とメモリが必要です。私はそれをできた

ファイル内の一意の行ごとに、ただし、これは可能な行ごとにファイルを n 回渡すことを意味します。

何か案は?


関連する質問では、大きなファイルで一意の行を見つける方法について尋ねられますが、それぞれのインスタンスの数を数える方法を探しています-可能な行が何であるかはすでに知っています.

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

c++ - GNU binutils と GDB が 1 つのパッケージにマージされたのはなぜですか?

特に、タグのセクションを参照してください。

この決定の背後にある理論的根拠は何でしたか? マージは、提案されている最新の binutils と GDB のビルド方法に影響しますか? (実際、私がチェックアウトしbinutils-2_25_1て実行したときmake all && make install、私も得gdbました。)

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

gcc - スタンドアロン アプリケーションをクロス コンパイルしますか?

アームボード用のスタンドアロンアプリケーションをクロスコンパイルしようとしていますが、最も重要なのは、Android.mk フレームワークなしでコンパイルしたいということです。

私は次の疑問を持っています:-

1-どのツールを使用する必要がありますか(arm-eabiまたはarm-linux-androideabiなど)。

2- ライブラリとツールチェーン関連のパーツはどこからダウンロードすればよいですか。

3- スタンドアロン コンパイル (完全に静的) に含めるべきコンパイル フラグは何ですか。

質問が明確でない場合はコメントしてください。また、欠落している関連情報を追加してください。詳細な情報をいただければ幸いです。

0 投票する
0 に答える
549 参照

c - クロス コンパイラを使用できません: PXA270 の gnu-unknown-linux-gnu-gcc

私は PXA270 ボードを持っており、gnu-unknown-linux-gnu-gcc を使用してファイルをコンパイルし、ボードに配置しようとしています。次のようにいくつかの手順を実行しました。

1.ファイルを解凍し、

2. ~/.bashrc に 1 行追加します。

3. ~/.bashrc をリロードする

これらの手順が完了したら、試してみます

そして、それが判明しました

「/opt/microtime/pro/devkit/arm/pxa270/gcc-4.0.2-glibc-2.3.3/arm-unknown-linux-gnu/bin」というパスに移動すると、 arm-unlown-linux-gnu-gcc があります。

だから私の問題は次のとおりです。

1.これらの設定の後、クロス コンパイラ arm-unknown-linux-gnu-gcc が機能しないのはなぜですか?

2.クロスコンパイラの設定はgccと同じですか?

ご協力いただきありがとうございます!

編集:

クロス コンパイラ ファイルは 32 ビット用で、VM は 64 ビット用であることがわかりました。いくつかの変更を加えると、機能します。

0 投票する
0 に答える
39 参照

linux - ARM のコンパイラ ツールチェーンへの外部ライブラリの追加

ARM ターゲット用のコンパイラ ツール チェーンをダウンロードしました。

私のホストマシン: Linux ターゲット H/w: ARM7

しかし、そのツールチェーンで追加のライブラリを追加する必要があります。

新しいライブラリを既存のツール チェーンに追加する方法を知る必要がありますか?

ありがとうハリ

0 投票する
0 に答える
4272 参照

arm - IAR は、GCC がリンクできる静的ライブラリを生成できますか?

協力したいソフトウェアのベンダーがいます。彼らは、IAR Embedded Workbench を使用してのみコンパイルできるコード ベースを持っています (私の知る限り、彼らのコードは GCC でコンパイルされません)。残念ながら、彼らのハードウェアはソフトウェア スタックでしか動作しないため、それを使用するかどうかについての選択肢はありません。.aこのコードは、ARM Cortex-M4 CPU 用にコンパイルされた静的ライブラリ ファイル (および付随するヘッダー) として配布されます。(彼らはソースを配布したくありません。) この議論のために、それを と呼びましょうevil_sw_stack.a

このコードを使用したいのですが、IAR ライセンスを持っておらず、IAR に関する専門知識もありません。GCCを使いたいです。

GCC がリンクできる静的ライブラリを IAR で作成する方法はありますか? そのようなバイナリを生成するために、ベンダーはどのようなコンパイラ オプションを使用する必要がありますか?
(結果のバイナリの ABI を何らかの方法で指定し、GCC を満たす設定に設定できると思います。)

GCCの使用例

彼らのデフォルトのソフトウェア スタックは GCC に非常に適しています。一般に、次のものがあれば、単純なサンプル コードをコンパイルできます。

  • startup_(devicename).S: GCC 固有のアセンブリ ファイル
  • system_(devicename).c
  • (devicename).ld: リンカー スクリプト
  • 特定のデバイス用のいくつかのヘッダー ファイル

たとえば、次のような単純な例をコンパイルできます。

ここまでは順調ですね。警告もエラーもありません。

スタティック ライブラリの使用方法

この議論のために、それを と呼びましょうevil_sw_stack.a
これは私がそれを使用しようとした方法です:

残念ながら、これは で定義されている一連の関数の複数の定義について不平を言っていますsystem_(devicename).c。たぶん彼らはそれをこのライブラリに誤ってコンパイルしたのでしょうか? それとも、IAR がこのようにコンパイルしただけなのでしょうか? ここでsystem_(devicename).c、GCC コマンド ラインからファイルを削除して単純に.aファイルにリンクしようとすると、次のエラーが発生します。

ファイルを突き刺しreadelfてもどこにも行きません:

興味深いことに、これはどこかに行き着いているようです:

今、私は ELF ヘッダーを持っているオブジェクト ファイルの束を持っていますreadelf.は間違いです。

これも機能します:

ここで問題は、GCC を使用してこれらのオブジェクト ファイルを自分のアプリケーションにコンパイルしようとしても安全かということです。this other SO questionによると、オブジェクトファイル形式には互換性がありません。

起動コードが間違ってライブラリにコンパイルされていると思います。削除できます:

これで、evil_sw_stack.a文句を言わずに gcc が入力として受け入れることができる が得られました。

ただし、まだ気になることが 1 つあります。スタティック ライブラリの代わりにオブジェクト ファイルを使用すると、次の警告が表示されます。

したがって、は (IAR に相当する)およびevil_sw_stack.aでコンパイルされたようです。コマンド ラインで使用する場合、GCC はこれについて文句を言いませんが、ライブラリから抽出したオブジェクト ファイルを使用しようとすると文句を言います。これについて心配する必要がありますか?-fno-short-enums-fshort-wcharevil_sw_stack.a

私は自分のコードで使用wchar_tしていないので、問題はないと思いますが、コードとライブラリの間で列挙型を渡したいと思います。

アップデート

リンカーは文句を言いませんが、静的ライブラリから実際にいくつかの関数を呼び出すと機能しません。その場合、リンカーを呼び出すときにライブラリを正しい順序で配置してください。この質問に対する受け入れられた回答によると、それらは依存関係の逆順である必要があります。これを行った後でも、IAR がらくたを見逃しています。

__aeabi関数が で定義されていることがわかりましたが、libgcclibgcc にもリンクしていますが、 の定義はlibgcc内の関数には十分ではないようですevil_sw_stack.a

編集:いくつかのグーグルで調べた後、これらの特定の機能arm-none-eabi-gccをサポートしていないようです。この問題__aeabiを見てください。

とにかく、ARM のランタイム ABI ドキュメントを見た後、欠落している__aeabi関数は、標準の C ライブラリの同等物を使用して簡単に実装できます。__iar_vla_alloc2しかし、どのように動作するのか、また動作するべきなのかよくわから__iar_vla_dealloc2ず、それらに関するドキュメントをオンラインで見つけることができませんでした。私が見つけた唯一のことは、VLAが「可変長配列」を意味することです。

したがって、チップ ベンダーがこれらのシンボルを使用しないように静的ライブラリをコンパイルできない限り、これは機能しないようです。そうですか?

免責事項

ベンダーが誰であるか、またどの製品を扱っているかは明らかにしたくありません。彼らは、これが適切に機能しないことを誇りに思っておらず、私にそうしないように頼んだ. 私は彼らの信用を傷つけるのではなく、助けるためにこの質問をしています.