問題タブ [binutils]
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.
c++ - gdbコマンド画面をどのようにクリアしますか?
gdb のコマンド ウィンドウをクリアすることはできますか? clear
つまり、bash ターミナルのコマンドと同じ (コマンド ウィンドウの) gdb のコマンドはありますか?
linux - binutils または gcc が 2 つの場所にインストールされるのはなぜですか?
Linux の知識を学んでいるのですが、binutils や gcc をコンパイルしてインストールすると、常に 2 つの場所に表示されます。
何か理由があるに違いないと思うのですが、なぜなのかわかりませんか?
実際、私はlfsを学んでいます。binutils の pass I をコンパイルすると、本の指示は次のようになります。
I make
&&の後、とmake install
の 2 つの場所にインストールされます。/tools/bin
/tools/$LFS_TGT/bin
その理由と目的を知りたいです。
debugging - GDB でのキー マッピング
GDB のコマンドに任意のキーの組み合わせを定義することは可能ですか? VIM map コマンドのようなものがあれば知りたいです。たとえば、次へ、ステップへなどにマップしたいと思います。
c++ - C++ のライブラリから単一の関数をインクルード/インポートできますか?
iequals
BOOST ライブラリの大文字と小文字を区別しない文字列比較関数を使用するだけです。
使っ#include <boost/algorithm/string.hpp>
て輸入しています。
iequals
関数を単独でインポートする方法はありますか?
私が気にする理由は (私は本当に興味があるだけです.)、コンパイルされた DLL は、そうしないと約 230kB であり、そうすると約 1.1MB#include
になるからです。この特定のケースでは、ファイルの大きさに大きな違いはありませんが、インポートされて使用されないものがたくさんあるようです。ライブラリが数 GB で、関数の 1 つだけが必要な場合はどうなりますか? それが問題になると思います。
私は cpp 関連のことに関しては確かに世間知らずですが、おそらく 90% が使用されていない場合に 750kB のコードを含めるのはあまり効率的ではないと感じています。iequals
関数がその 750kB をすべて使用している可能性がありますが、私にはわかりません。
繰り返しになりますが、iequals
関数に同じライブラリが多数含まれている場合でも、ファイルは同じくらい大きくなります。
考え?
アドバイスをよろしくお願いします。
編集:
回答ありがとうございます。私はそれらを理解するために最善を尽くしています。
私は非常に遅く最適化されていない一連の VBA マクロを C++ DLL に書き直す化学エンジニアです。これまでのところ、結果は素晴らしく、すべてが正しく機能しています。2 つの文字列間で 1 つのタイプの比較のみを行う必要がある場合は、余分なファイル サイズが必要になるとは思いません。
私が行う必要がある比較の例は次のとおりです。
またはより正確には:
これが私がしなければならない唯一のタイプの比較である場合、次よりも簡単な方法でそれを行うことができますか?
これは次の方法で呼び出されます。
これらの最後の 2 つのブロックは、実際には私のコードから貼り付けられています。
ありがとう、みんな。
cross-compiling - クロスコンパイル、なぜ「クロスコンパイルしているかどうかをチェックしています...いいえ」?
クロスプラットフォームのツール チェーンを自分でコンパイルしようとしています。
binutils-2.22 をコンパイルすると成功しましたが、「クロス コンパイルしているかどうかを確認しています...いいえ」と表示されるのはなぜですか? 「はい」でいいと思いますよね?
私のホストは ubuntu を実行している i686 で、ターゲットは arm です。
この後、「make」して「makeinstall」すると、arm-linux-* が作成されます。
ありがとう!
linux - Cygwin binutils configure Cached が正しくない
Cygwin 環境に binutils をインストールしようとしています。
私のパスは非常にめちゃくちゃでした(たとえば、構成の出力の1行は次のとおりでした:
、これは明らかに厄介です)、Cygwin の /etc/profile をパスがより単純になるように変更しました。
ただし、構成を実行すると、一部の値 (上記のような) が「(キャッシュされた)」と報告されます。これは config.cache ファイルの無効な状態に関連している可能性があると考えましたが、そのようなファイルをすべてコンピューターから削除した後も問題は解決しません。
キャッシュされた値とは何を意味し、どうすれば更新できますか?
linux - 「make install」中の Binutil での許可エラー
私はLFS7.2に取り組んでいます。binutil パッケージを "make install" しているときにパーミッション エラーが発生しますが、ユーザー lfs を使用して 3 つのディレクトリ (source、tools、usr) すべてにフォルダーを作成できました。チャパー 4.1 を 4.4 にロールバックして再実行しましたが、まだ問題に直面しています。
**
**
gcc - gcc/binutilsを変更します--prefix
--prefix=/home/.../usr
私はかつて、configureスクリプトに渡された間違ったプレフィックス()を使用してgccとbinutilsをビルドしてインストールしました。
ここで、gccとbinutilsを正しいプレフィックス(--prefix=/usr
)で再構成、再構築、再インストールしましたが、コンパイルは常に次のように失敗します。
もちろん、ライブラリを機能させるためにシンボリックリンクすることもできますが、これらのパスがどのファイルに保存され、どのように変更できるかを知りたいです。
c - デフォルトで gcc が ld に渡すコマンド ライン オプションを特定するにはどうすればよいですか?
hello world C プログラムを考えてみましょう:
こんにちは。
私が電話した場合:
ELF 再配置可能ファイルhello.oが生成されます。
次に電話すると:
hello.o を ld にリンクし、ELF 実行可能ファイルhelloを生成します。
[2]
ただし、代わりにld を直接呼び出す場合[1]
:
次のエラーが表示されます。
gcc は ld に他のオプションを渡す必要があります (たとえば、C ライブラリをリンクするため)。
コマンドライン gcc が command で ld に何を渡しているかを正確に判断する方法はあります[1]
か?
gcc - CentOS でツールチェーン全体を構築するためのチュートリアル
非常に古い GCC/GlibC バージョンの CentOS 6 マシンで作業しています。最新のgccでc ++ 11サポートを使用し、最近のbinutilsでld.goldを使用し、最近のglibcで改善される可能性があるため、glibc、binutils、gccツールチェーン全体を最新または少なくともごく最近のバージョンで構築したいと考えています。
ツールチェーン全体を別のディレクトリに置き、既存のシステム ファイルに影響を与えないようにしたいと考えています。また、gcc を使用するときに -I/some/directory/include や -L/some/directory/lib などのパラメーターを指定する必要がないように、--sys-root を指定して gcc をビルドしたいと考えています。また、生成された実行可能ファイルは、新しい libc.so を自動的に検出する新しい ld-linux-xxxxx プログラム ローダーを自動的に使用します。
このタスクに関するチュートリアルが存在するかどうかは誰にもわかりませんか?