問題タブ [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.

0 投票する
5 に答える
100555 参照

c++ - オブジェクトファイル内のシンボルを表示するにはどうすればよいですか?

.oファイルのシンボルを表示するにはどうすればよいですか?nmは私には機能しません。私はg++/linuxを使用しています。

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

opengl - .obj ファイルから OpenGL モデル ヘッダー ファイルへの変換 - インデックスと f パラメータ?

私が使用している OpenGL モデル ヘッダー ファイルには、次のような定義が含まれています。

static const float modelVertices[NUM_OBJECT_VERTEX * 3] = {}

static const float modelTexCoords[NUM_OBJECT_VERTEX * 2] = {}

static const float modelNormals[NUM_OBJECT_VERTEX * 3] = {}

static const unsigned short modelIndices[NUM_OBJECT_INDEX] = {}

ブラケットの間にカンマで区切られた一連の数字(適切な浮動小数点数と整数)がある場所。

.obj ファイルv, vt, vnを上記の形式に変換するのは簡単に思えます。f私の .obj ファイルには、 で区切られたトリプレットを含む の束もあ​​ります/これらのパラメーターが正確に何であるかはわかりません...

4 番目の modelIndices を取得するには、どのパラメーターを変換する必要がありますか?

(私は OpenGL の初心者であることを前もって認める必要があるため、これが初歩的すぎると思われる場合は申し訳ありません!)

0 投票する
5 に答える
547 参照

c - オブジェクトファイルをリンクし、インクルードを冗長にしますか?

私は少しCで手を試しています。そして私はこのリンクビジネスを理解したと思いました。しかし、私はそうは思わない。私は単純なファイルmain.cを持っています:

次に、ファイルの2番目のペアfunction.c / function.h

これをコンパイルするとうまくいきます。ただし、#include "function.h"メインファイルで使用するかどうかに関係なく、うまく機能します。では、なぜfunction.hを含める必要があるのでしょうか。

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

linux - Linux で gcc を使用したインクリメンタル リンク。出来ますか?

私のチームのプロジェクトの開発方法では、すべての.oオブジェクト ファイルからアプリケーション用の共有オブジェクト ライブラリを生成します。私の仕事 (うまくいけば、それは十分に具体的であると同時に、他の人に役立つほど一般的でもあります!) は、実行可能ファイルが最後に作成されてから変更されたオブジェクト ファイルのみをリンクすることです。たとえば、.so のビルドに使用するコマンド ラインは次のとおりです。

これは期待どおりに機能します。:)私の目標は、変更されたオブジェクトファイルのみをリンクできるようにして、同時リンクプロセスを高速化することです。コマンドの例は次のとおりです。

libMySharedLibrary.so古いオブジェクトファイルも維持しながら、新しいオブジェクトファイルで更新されますlibMySharedLibrary.so。実際、libMySharedLibrary.so上記のコマンドで生成すると、すべてのオブジェクト ファイルが含まれている場合よりもファイル サイズが大幅に小さくなっているため、上記のコマンドが意図したとおりに実行されていないことはほぼ確実です。

私の調査を通じて、-iオプションと同じリンカのオプションがあることがわかりました。これは、-rすべてのオブジェクト ファイルを 1 つの大きなオブジェクト ファイルに結合するだけのように見えます。残念ながら、これが私が望むものではないようです。

要するに、最初のリンク後に変更されたオブジェクト ファイルのみをリンクして、将来のリンクのリンク プロセスを高速化したいと考えています。これを行う方法はありますか?

編集:私が試したものの例-i/-r:

コマンド例:g++34 -Wl,-r -nostdlib -rdynamic -m64 -Wl,-rpath,'$ORIGIN' MyObject1.o MyObject2.o MyObject3.o MyObject4.o -o AllMyObjects.o

-nostdlibタグが必要だと叫ぶのを止めるためにタグを追加する必要があり、-shared共有オブジェクトは-rタグで許可されていないため削除しました。

このコマンドは、すべての .o ファイルを 1 つの大きな .o ファイルにまとめるように見えます。したがって、変更された .o ファイルのみを使用して、これからその .o ファイルを更新できれば、それは素晴らしいことです。AllMyObjects.o が最初に作成された後、次のコマンドを試しましたg++34 -Wl,-r -nostdlib -rdynamic -m64 -Wl,-rpath,'$ORIGIN' MyObject1.o MyObject3.o -o AllMyObjects.o: AllMyObjects.oこれは私が小さな間違いを犯している可能性が高いものだと感じています。誰にもアドバイスはありますか?前もって感謝します。

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

c++ - Typedef、(バイナリ)コードの複製とオブジェクトファイル

このコードを含むソースファイルファイルをコンパイルするとします。

PointSizeは(そのメンバーのメモリレイアウトに関して)まったく同じなので、コンパイラstructはオブジェクトファイルに重複コード(各に1つ)を生成しますか?それが私の最初の質問です。


それでは、ソースコードからを削除し、代わりに次のようにstruct Size定義してみましょう。typedef

コンパイルは今何をしますか?コードを複製しますか(typedefは名前を変更するだけでなく、それ以上のものであるため)?


ここで、次のようなクラステンプレートがあるとします。

そして、このようにいくつかの定義を設定します。

テンプレートパラメータint UnUsedはクラスの実装では使用されないため(と仮定してください)、この状況はまったく同じメモリレイアウトを持つ複数のクラスとまったく同じように見えます(との場合と同様struct Pointstruct Size。オブジェクトファイル?

そして、私たちがこのようにしたらどうなるでしょう、

typedefで同じインスタンス化されたクラスを使用しているので、この状況はより良いですか?

PS:このクラステンプレートコードはここから取得されます:

C ++のテンプレートプログラミングを使用して基本クラスから派生クラスを作成するにはどうすればよいですか?


実際、コンパイラがソースコードからオブジェクトファイルを生成する方法や、クラス名、メンバー、その他のシンボルなどをどのように処理するのか、私にはわかりません。typedefをどのように処理しますか?これで何をしますか、

ArrayIntここに新しいタイプはありますか?オブジェクトファイルにどのコードコンパイラが作成しますか?どこに100保管されていますか?

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

linker - 実行可能ファイルのコンパイル後にオブジェクト ファイルをマージする

多くの .o ファイルを含む実行可能ファイルがあります。これらのオブジェクト ファイルを 1 つのファイルに減らしたいのですが、実行可能ファイルのソース コードがありません。「ar」を使用してそれらをアーカイブするのはそれを行う方法ですか、それともソースを再コンパイルしないと不可能ですか?

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

c - Delphi2007で複数のCオブジェクトファイルをリンク中にエラーが発生しました

私はデルファイに不慣れです。DelphiはCオブジェクトリンクをサポートしているため、DelphiプロジェクトにCオブジェクトファイルを追加して直接リンクしようとしていました。単一のオブジェクトファイルをリンクすると、機能するようになりました。しかし、複数のオブジェクトファイルをリンクしようとすると、「Unsatisfied forwardorexternaldeclaration」というエラーが発生します。XEだけでなくDelphi2007でもこれを試しましたが、ここで何が間違っているのでしょうか。

作業コード:

エラーコード:

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

qt - Qt でオブジェクト ファイルをプロジェクトに追加する方法

現在、あるプロジェクトのリンカーには、別のプロジェクトのソース ファイルによって生成されたオブジェクト ファイルへのリンクに問題があります。これらのオブジェクト ファイルを Qt に手動で追加する方法はありますか?

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

cmake - CMake ビルド ターゲットからオブジェクト ファイル (*.o) のみを生成するにはどうすればよいですか?

CMake を使用してオブジェクト ファイルをビルドしようとしていますが、CMake で完全な実行可能ファイル以外のものをビルドできないようです。基本的に、次のコンパイルの結果を探しています (結果は VxWorks ターゲットにロードされ、リンクされます)。

ターゲットのプロパティを変更しようとしましたOUTPUT_NAMEが、それも役に立たないようです。

カスタム コマンドを使用してこれを回避できると思いますが、CMake が提供する優れた機能も回避しているようです。

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

0 投票する
5 に答える
652 参照

binary - 実行可能ファイル/オブジェクト ファイルから 0 と 1/マシン コードを確認するにはどうすればよいですか?

私はすでにこれを試しました.a.outファイルをテキストエディタで開きましたが、次のような指示が含まれた文字の束しか得られません:

üÙ