問題タブ [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.
gcc - elf 形式の .o ファイルの symtab エントリ
私はリンクについて学んでいます..
私はcで次のコードを書き、gccを使用して.oを作成しました
次に、これを .o にしました:
gcc begin.c -o begin.o
今、readelf を使用して symtab をチェックしたところ、z の記録がありませんでした....なぜですか?
また、gcc はどのようにして 2 つの 'y' を許可しますか?
.data セクションでは、2 つの「x」はどのように区別されますか?
optimization - 静的ライブラリが、通常の相互依存の最適化や並べ替えなしで、オブジェクト ファイルの袋に過ぎないのはなぜですか?
共有ライブラリ (または少なくとも Windows DLL) をリンクすると、多くの最適化が可能になり、すべての関数とクラスが一緒にスローされ、最適なパフォーマンスのために再編成されます (または、そう思う/期待します)。
静的ライブラリがオブジェクトの袋にすぎないのはなぜですか? オブジェクトファイル内に含まれる変数、関数、クラスなどのリストをリンカが (時間的にもパフォーマンス的にも) 持つ方がよいのではないでしょうか。静的ライブラリ内の相互に依存するものに対して既に実行された最適化パスから利益を得ますか?
静的ライブラリの作成にそれほど時間はかかりませんが (いずれにせよ限られた数の最適化のみが可能です)、このライブラリを使用した後続のビルド手順ははるかに高速/最適化されます。
PS: ここでは主にリンク時の最適化について話していますが、人気のあるすべてのツールチェーンがこの機能を誇りに思っているため、この質問が何らかの形で現れると確信しています。この質問に次のように答えないでください。それはいつものやり方であり、互換性は誰も変更しようとは考えていませんでした。それは私が探しているものではありません...
c++ - 「オブジェクトファイル」の「オブジェクト」とは何ですか?なぜこのように呼ばれているのですか?
「「オブジェクトファイル」とは何ですか?」という質問を受けました。
Wikiを見た後、オブジェクトが含まれていることしかわかりません。
しかし、それらのオブジェクトとは何で、なぜ誰かがそのように呼んだのでしょうか?
debugging - 複数のオブジェクトファイルを使って fortran プログラムをデバッグするには?
依存する .o オブジェクト ファイルを呼び出す Fortran プログラムがあります。デバッグ時にファイルをまたがるようにしたいのですが、可能ですか?
コンパイルルーチンは次のようになります。
ここで、analyze.x は実行可能ファイルです。すべての .o ファイルは、-g フラグも使用してコンパイルされています。(gdb) ブレーク メインを実行してからプログラムをステップ実行しようとすると、ほとんどのサブルーチンがオブジェクト ファイルで実行されます。オブジェクトファイルコードもステップスルーできるかどうか疑問に思っていました.
java - LWJGL .OBJファイルリーダーがファイルを変形したり、レンダリングしない場合があります
私は何人かの友人とゲームに取り組んでおり、生活を楽にするために、3Dモデルはすべて.objファイルを使用して作成され、3DSMax、Maya、Blender3Dなどのプログラムにエクスポートされることにしました。
そこで、.objファイルリーダーを作成して、単純なシーンで試してみました。いくつかの.objファイルは(単純な立方体のように)うまくレンダリングされ、いくつかは本当に奇妙にレンダリングされ、いくつかはまったくレンダリングされませんでした。誰かが私が間違ったことを指摘してくれることを期待していました。次のコードには1つのクラスが含まれ、2つの埋め込みクラスがあり、そのうちの1つには別の埋め込みクラスが含まれています。混乱する可能性があるため、必要に応じてコピーしてファイルに貼り付け、読みやすくすることができます。
スクリプトはファイル内の行を1行ずつ読み取り、「v」(頂点)で始まる場合は行をスペースで分割し、インデックス1 2と3(xyとz)を取り、整数値を頂点と呼ばれるクラスに格納します。そしてそれを頂点オブジェクトの配列に追加します。頂点オブジェクトはベクトルと同じように機能しますが、位置用と法線用の2つのベクトルのみが含まれています。
行が「vn」(頂点法線)で始まる場合は、行を「」で分割し、インデックス1、2、3を取得して、これまでのベクトルのように機能する頂点オブジェクトに追加し、その頂点を追加します。特に法線用の別の頂点配列に変換します。
ここで興味深い部分があります。行が「f」(面)で始まる場合、行は次のようになります。
各#1 //#2、#1は正しい頂点のインデックス、#2は適切な法線のインデックスです。したがって、線の各部分を「」で分割し、「//」で分割し、頂点配列から頂点を取得し、法線配列から頂点を取得し、頂点法線を法線のxyとzに設定します。 Faceオブジェクトを作成し、それを面のリストに追加しました。面は3つまたは4つの頂点オブジェクトを保持します。
うまくいけば、この説明によってファイルが乱雑に見えなくなる可能性があります。
さて、ここにコードがあります:
c++ - オブジェクトファイルを読み込むことはできますか?
私は.obj
ファイルに興味がありました: 私はそれらが何であるか (またはそれらが何を含んでいるか) をほとんど知らないので、Vim テキストエディターでファイルを開いたところ、中にはエイリアンのような言語が見つかりました...
それらが何を表し、その内容が何であるかを理解する方法はありますか? また、それらは何のために使用されているのでしょうか?
ありがとう。
c - GCC でアセンブリせずにプログラムをコンパイルする方法はありますか?
重複の可能性:
GCC を使用して読み取り可能なアセンブリを生成しますか?
たとえば、私がしようとすると:
gcc -c マイプログラム
バイナリ形式のオブジェクト ファイルが提供されます。私が取得したいのは、アセンブリ ファイル (オブジェクト ファイルを生成するためにアセンブラによって処理される直前) だけです。gccでそれを行う方法はありますか?
c - コンパイラは、オブジェクト コードを生成するときにアセンブリ レベルを通過する必要がありますか?
重複の可能性:
プログラミング言語コンパイラは、最初にアセンブリに変換しますか、それとも直接マシン コードに変換しますか?
例えば:
上記のコマンドは、オブジェクト ファイルである myprogram.o を生成します。内部的に知りたいのですが、GCC はアセンブラーのステップを経る必要がありますか? 例えば:
c++ - Visual Studio C ++でプロジェクトをコンパイルしているときに、オブジェクトファイル「.o」を生成します
Microsoft Visual Studio C++2010でプロジェクトの「.cpp」ファイルの「.o」出力を生成しようとしています。
リンクなしでコンパイルするには、Ctrl + F7を押すだけでよいという答えはすでに見つかりましたが、そのオブジェクトファイルはどこに作成されますか?
cmake - CMake を使用してオブジェクト ファイルから直接ライブラリをビルドする方法
オブジェクト ファイルのセットが与えられた場合、CMake で静的ライブラリをどのように構築しますか?
autotools を使用すると、
OBJFILES は、オブジェクト ファイルのリストです。
CMake でそれを行う方法は?
編集: 元の cxx ファイルを再コンパイルできません。オブジェクト ファイル (*.o) を使用してライブラリを作成する必要があります。