問題タブ [object-files]
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.
windows - Windows実行可能ファイルの構造
一般に、オブジェクトファイルにはコード、データ、ヒープ、スタックのセクションがあることを私は知っています。
しかし、これがWindows実行可能ファイルとLinux実行可能ファイルでどのように配置されているか知りたいです。
インターネットで検索して、いくつかの構造を見つけました。
.textはコード用で、.dataはグローバル変数用であることを理解しました。
LinuxとWindowsの両方のプラットフォームのスタックとヒープがここにあることを知りたいですか?
実行可能ファイルの構造を教えてもらえますか?
前もって感謝します...
compiler-construction - ELF エンディアン データ形式の変更
ビッグ エンディアンとリトル エンディアンの ELF/DWARF ファイルの両方で動作するようにソフトウェアを編集しようとしています。そのためには、同じデータの Little ELF ファイルと Big ELF ファイルの両方を用意することをお勧めします。コンパイラで単純なプログラムを使用して ELF オブジェクト ファイルを作成していますが、オブジェクト ファイルは常に、使用しているチップのアーキテクチャのエンディアンでフォーマットされています。1 つのチップで 1 つのプログラムの両方のエンディアンを取得する方法はありますか?
ありがとう。
c - .exe に含まれる静的にリンクされた関数を取得して再利用する方法はありますか?
例えば:
作るためにリンクmyprogram.obj
したとmyprogram.lib
しましょうmyprogam.exe
あらゆる種類の特別な機能が含まれていて、誤ってそれ (およびソース) を削除した場合myprogram.lib
、掘り下げてmyprogram.exe
機能を取り出す方法はありますか? または、何らかの方法でファイルに変換myprogram.exe
し、.lib
必要な部分のみを参照することもできますか?
c++ - C++ オブジェクト ファイルのサイズは何に依存しますか?
C++ ファイルをコンパイルするたびに、obj ファイルが生成されます。obj ファイルのサイズはどのような要因に依存するのか知りたいですか?
私の質問をより明確にするために、たとえば、c ++ファイルにはクラス宣言が含まれており、このクラスにはデータメンバーとして1つの整数変数があり、いくつかのメンバー関数もあります。このファイルをコンパイルすると、いくつかの X サイズの obj ファイルが作成されます。ここで、さらにデータ メンバーとメンバー関数を追加すると、obj ファイルのサイズは変化しますか?
c++ - Linux で .o (C オブジェクト ファイル) を C++ ファイル/プロジェクトにリンクする
次のように、Linuxの.oファイルに問題があります。
関数 ECL_Drawrect() を呼び出す Visual.cpp があり、この関数は次のように定義されています。
私のVisual.cppには、「ecl.h」も次のように含めています。
問題は、関数 ECL_bDrawrect がecl.oファイルにあり、それをリンクして上記の関数を使用する方法がわからないことです。
いくつかの調査の後、次のように設定して設定しました。
私のプロジェクトには ecl.o パスも含まれており、コンパイルすると次のエラーが発生します。
リンクが正しいかどうかわかりませんか?この ecl.o ファイルを適切にリンクするにはどうすればよいですか?
p/S: ubuntu 11.04 64 ビットで eclipse CDT を使用していますが、ecl.oは 32 ビット用です。そのため、-m32 を g++ に配置する必要があります。
trie - mmoオブジェクト形式のシンボルテーブルで使用される試行はどのように機能しますか?
mmo
DonKnuthの教育MMIX
アーキテクチャで使用されているオブジェクトファイル形式がどのように機能するかを理解しようとしています。私はMMIXwareを購入していないので、アセンブラーとシミュレーターの読み書きのできるソースファイルから詳細のほとんどを推測する必要があります。
オブジェクト形式は、シンボルテーブルを格納するために特別な三分探索木を使用します。コードを見ると、それがどのように機能するのかよくわかりません。誰かが私にいくつかの詳細を説明してもらえますか?特にツリーがどのようにシリアル化されるかについて。
c++ - C++ プロジェクト間で中間ファイルを共有しますか?
現在、2 つの異なるネイティブ Visual-C++ プロジェクト (コンパイラ設定がまったく同じ) が中間ファイル (obj、pch、...) を共有できるかどうかを調べようとしています。
例が役立つはずです:
これは通常のセットアップです。
このセットアップはどうですか:
2 つの C++ プロジェクトに同じ中間フォルダーを使用して、obj
ファイルを直接共有することはできますか?
それとも、追加の静的 lib プロジェクトが常に必要ですか? (私が理解している限り、静的ライブラリは単なるobj
ファイルのコンテナーです。)
なぜ私はこれをしたいのですか?このブログ記事を見てください:ネイティブ C++ 用の Visual Studio でのユニット テストの記述。
2 つの異なる実行可能ファイル (必要に応じてメイン関数) を持つという唯一の目的で、静的ライブラリを使用します。(マネージド/CLIのことは忘れてください。)これは、同じコンパイル設定で同じコードを共有するが異なるメイン/スタートアップを使用する2つのプロジェクトだけが本当に必要な場合に、ソリューションに3つのプロジェクトを持つことを意味します(3つのプロジェクトを維持する必要があります)。リギング。
c - C のオブジェクト ファイルとは何ですか?
C のライブラリについて読んでいますが、オブジェクト ファイルとは何かについての説明をまだ見つけていません。他のコンパイル済みファイルとオブジェクト ファイルの本当の違いは何ですか?
どなたか人間の言葉で説明していただけると幸いです。
c - C での 1 対 1 のリンク
特定のオブジェクトのみを相互にリンクできるように、C でオブジェクト ファイルのリンクを実装する方法はありますか?
例えば。オブジェクト 1 とオブジェクト 2 をリンクしようとすると動作し、動作する実行可能ファイルが生成されますが、オブジェクト 1 とオブジェクト 3 をリンクしようとするとエラーが返されるか、結果の実行可能ファイルが正しく動作しません。
背景情報: 基本的に、プログラマー A とプログラマー B がそれぞれのオブジェクトをリンカー会社に送信する状況です。A と B は、リンカ会社がそれらのオブジェクトのみをリンクできるようにし、他のプログラマー (つまり、プログラマー C など) のオブジェクトとリンクしないようにしたいと考えています (違法であるため)。
Jörgen Sigvardssonの答えは役に立ちますが、もっと確実な方法があるかどうか疑問に思っています。例えば。gcc を使用して不正なオブジェクトをリンクしようとすると、Linker Company は必要なシンボルを判断し、それらを不正なオブジェクトに追加するだけで、簡単に制限を破ることができます。
c++ - .cc ファイルを使用しない .o ファイルの C++ コンパイル
コンパイル済みの .o ファイルを受け取ったプログラムがありますが、元の .cc ファイルはなく、途中で完成したヘッダー ファイルしかありません。ヘッダー ファイルにはすべてのメソッド シグネチャがありますが、プライベート変数の宣言がありません。この .o ファイルをプロジェクトで動作させようとしていますが、.o ファイルで定義されたクラスのコンストラクターでセグメンテーション違反が発生します。プログラムがコンパイルされます。これを機能させるにはどうすればよいですか?このプログラムは宿題であり、教師は私たちに .cc ファイルを見せることを望んでいません。また、私の先生はその問題について知っています。私は自分でそれを理解しようとしています(そしてうまくいけば皆さんの助けを借りて:))。少し前に別の先生と一緒にやったと思っていましたが、問題はありませんでした。プログラムのコンパイルに使用されるメイクファイルがあります。