問題タブ [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.
c++ - オブジェクトファイル内のシンボルを表示するにはどうすればよいですか?
.oファイルのシンボルを表示するにはどうすればよいですか?nmは私には機能しません。私はg++/linuxを使用しています。
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 の初心者であることを前もって認める必要があるため、これが初歩的すぎると思われる場合は申し訳ありません!)
c - オブジェクトファイルをリンクし、インクルードを冗長にしますか?
私は少しCで手を試しています。そして私はこのリンクビジネスを理解したと思いました。しかし、私はそうは思わない。私は単純なファイルmain.cを持っています:
次に、ファイルの2番目のペアfunction.c / function.h
これをコンパイルするとうまくいきます。ただし、#include "function.h"
メインファイルで使用するかどうかに関係なく、うまく機能します。では、なぜfunction.hを含める必要があるのでしょうか。
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
これは私が小さな間違いを犯している可能性が高いものだと感じています。誰にもアドバイスはありますか?前もって感謝します。
c++ - Typedef、(バイナリ)コードの複製とオブジェクトファイル
このコードを含むソースファイルファイルをコンパイルするとします。
Point
とSize
は(そのメンバーのメモリレイアウトに関して)まったく同じなので、コンパイラstruct
はオブジェクトファイルに重複コード(各に1つ)を生成しますか?それが私の最初の質問です。
それでは、ソースコードからを削除し、代わりに次のようにstruct Size
定義してみましょう。typedef
コンパイルは今何をしますか?コードを複製しますか(typedefは名前を変更するだけでなく、それ以上のものであるため)?
ここで、次のようなクラステンプレートがあるとします。
そして、このようにいくつかの定義を設定します。
テンプレートパラメータint UnUsed
はクラスの実装では使用されないため(と仮定してください)、この状況はまったく同じメモリレイアウトを持つ複数のクラスとまったく同じように見えます(との場合と同様struct Point
)struct Size
。オブジェクトファイル?
そして、私たちがこのようにしたらどうなるでしょう、
typedefで同じインスタンス化されたクラスを使用しているので、この状況はより良いですか?
PS:このクラステンプレートコードはここから取得されます:
C ++のテンプレートプログラミングを使用して基本クラスから派生クラスを作成するにはどうすればよいですか?
実際、コンパイラがソースコードからオブジェクトファイルを生成する方法や、クラス名、メンバー、その他のシンボルなどをどのように処理するのか、私にはわかりません。typedefをどのように処理しますか?これで何をしますか、
ArrayInt
ここに新しいタイプはありますか?オブジェクトファイルにどのコードコンパイラが作成しますか?どこに100
保管されていますか?
linker - 実行可能ファイルのコンパイル後にオブジェクト ファイルをマージする
多くの .o ファイルを含む実行可能ファイルがあります。これらのオブジェクト ファイルを 1 つのファイルに減らしたいのですが、実行可能ファイルのソース コードがありません。「ar」を使用してそれらをアーカイブするのはそれを行う方法ですか、それともソースを再コンパイルしないと不可能ですか?
c - Delphi2007で複数のCオブジェクトファイルをリンク中にエラーが発生しました
私はデルファイに不慣れです。DelphiはCオブジェクトリンクをサポートしているため、DelphiプロジェクトにCオブジェクトファイルを追加して直接リンクしようとしていました。単一のオブジェクトファイルをリンクすると、機能するようになりました。しかし、複数のオブジェクトファイルをリンクしようとすると、「Unsatisfied forwardorexternaldeclaration」というエラーが発生します。XEだけでなくDelphi2007でもこれを試しましたが、ここで何が間違っているのでしょうか。
作業コード:
エラーコード:
qt - Qt でオブジェクト ファイルをプロジェクトに追加する方法
現在、あるプロジェクトのリンカーには、別のプロジェクトのソース ファイルによって生成されたオブジェクト ファイルへのリンクに問題があります。これらのオブジェクト ファイルを Qt に手動で追加する方法はありますか?
cmake - CMake ビルド ターゲットからオブジェクト ファイル (*.o) のみを生成するにはどうすればよいですか?
CMake を使用してオブジェクト ファイルをビルドしようとしていますが、CMake で完全な実行可能ファイル以外のものをビルドできないようです。基本的に、次のコンパイルの結果を探しています (結果は VxWorks ターゲットにロードされ、リンクされます)。
ターゲットのプロパティを変更しようとしましたOUTPUT_NAME
が、それも役に立たないようです。
カスタム コマンドを使用してこれを回避できると思いますが、CMake が提供する優れた機能も回避しているようです。
ご協力いただきありがとうございます!
binary - 実行可能ファイル/オブジェクト ファイルから 0 と 1/マシン コードを確認するにはどうすればよいですか?
私はすでにこれを試しました.a.outファイルをテキストエディタで開きましたが、次のような指示が含まれた文字の束しか得られません:
üÙ