問題タブ [coff]
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# - 「PE\0\0」を取得できなかったのはなぜですか?
PE 仕様から:
ロケーション
0x3c
で、スタブには PE 署名へのファイル オフセットがあります。この情報により、MS DOS スタブが含まれている場合でも、Windows はイメージ ファイルを適切に実行できます。このファイル オフセットは0x3c
、リンク中に location に配置されます。2.2. 署名 (イメージのみ)
MS DOS スタブの後、offset で指定されたファイル オフセットに0x3c
、ファイルを PE 形式のイメージ ファイルとして識別する 4 バイトの署名があります。この署名は「PE\0\0」です (文字「P」と「E」の後に 2 つのヌル バイトが続きます)。
私はこれらのバイトを読んでみます:
しかし、marker
変数には0x08
、0x01
、0x00
およびx0x00
バイト (最初と 2 番目は文字ではありませんP
)がありE
ます...なぜこのような結果が得られるのでしょうか?
c++ - セクションのシンボルを取得する
COFF のドキュメントを調べたところ、セクション ( ) のシンボルを取得する方法がわかりませんでした__setdefaultprecision
。シンボル テーブル、文字列テーブル、およびセクションの配列へのポインターがありますが、どのようにシンボルを知ることができますか?各セクション?どんな助けでも感謝します。
visual-studio - /GL でコンパイルされた .obj ファイルからメジャー コンパイラ バージョンを確認する方法は?
.obj
リンク時のコード生成オプションで生成されたファイルから、Visual Studio のバージョン (2002/2003、2005、2008、2010、2012、2013、2015) を特定しようとしています。
私が持っている、MSVC2012 で生成されたファイルには、次の COFF ヘッダーの内容があります。
最初の 4 バイトが 00,00,FF,FF であることが LTCG オブジェクトとしてマークされているようで、その後に続くのは独自のものです。通常のファイルヘッダーメンバーはどれも「意味がありません」(タイムスタンプは問題ないかもしれませんが、私は確認しませんでした)。
このヘッダーの一部がコンパイラ固有のものであるかどうかを知っている人はいますか? 私が決定する必要があるのは、オブジェクトのコンパイルに使用された MSVC メジャー バージョンだけです...
としてコード化されたバージョンが<MAJOR:16:LE> 0x80 <MINOR:16:LE>
ヘッダーの直後に保存されているようです。例えば:
必要なのは、前のデータからのオフセットによって確実に到達する方法を理解することです。
これは関連する質問であり、解決策はありません...
c++ - リンカ エラー「無効な OMF レコードが含まれています」 2
Embarcadero XE8 C++ ビルダー 32 ビットを使用しています。
を解決するために、プログラムにライブラリを追加していましたUnresolved external error
。
ライブラリを追加すると、タイトルのようにエラーが発生しました。だから私はウェブを検索し、スタックオーバーフローでこのトピックを見つけました: リンカーエラー「無効なOMFレコードが含まれています」
COFF2OMF ツールと言うように、動作することができます。悲しいことに、それは私にとってはうまくいきませんでした.7MBのライブラリファイルを提供します.ツールで変換すると、41KBしかありません.変換に失敗したと思います. 変換されたファイルをプログラムに追加すると、それは無視され、unresolved external error
.
では、ライブラリを C++ ビルダーで動作させるにはどうすればよいでしょうか?
scripting - package.loadlib の場合、lua は dll が COFF 形式または ELF 形式である必要がありますか?
lua スクリプトに dll をロードして関数を呼び出そうとしています。GCC(cygwinの下)とlua(5.2.4)を使用してdllを作成すると、ライブラリをロードして問題なく実行できます。ただし、Lua 5.1 を使用して SciTE から同じスクリプトを実行すると、dll が正常に読み込まれます。ただし、実行されません。dll では、単純に 2 つの整数をファイルに書き込もうとしています。
ここで 2 つの質問があります。 1. lua が問題なく理解して実行できるように、'mylibrary.dll' の形式は ELF か COFF か。2. Linux 上で動作する lua の下で dll (明らかに Windows でビルドされたもの) を実行できますか?
visual-studio-2010 - LIB ファイルのバージョンを確認するにはどうすればよいですか?
Visual Studio 2010 を再インストールした後、コードを再コンパイルしたところ、次のエラーが発生しました。
エラー「リンク: 致命的なエラー LNK1123: COFF への変換中にエラーが発生しました: ファイルが無効または破損しています」
lib ファイルに互換性がなく、Visual Studio 2010 SP1 をインストールする必要があるという解決策がありました。私はそれをしました、そして今それは解決されました。
lib ファイルが SP1 によって作成されているかどうかを確認するにはどうすればよいですか? dumpbin を試しましたが、結果にバージョンが見つかりません。
c - gcc-arm-none-eabi ツールチェーンを使用して Proteus 互換のデバッグ ファイルを生成する方法
ARM7TDMI ベースのマイクロコントローラである LPC2138 を使用して、新しいプロジェクトを開発しています。Keil IDE でこのマイクロコントローラのコードを開発済みです。ここでの私の意図は、Linux ホスト PC で GNU ツールチェーンを使用して ARM コード開発を試すことです。そのため、gcc-arm-none-eabi ツール チェーンを使用しています。
これまでのところ、ARM 用の実行可能ファイル (および .hex ファイル) の生成に成功しています。これは私が使用したメイクファイルです。
私の問題は、Proteus(ISIS)で実行可能ファイルをデバッグ(段階的に実行)する必要があることです。ただし、Proteus は .coff および .elf 形式の実行可能ファイルのみをサポートします。
gcc はデフォルトで elf 形式の実行可能ファイルを生成することを知っています。実行可能イメージの名前を .elf 拡張子に変更して、Proteus にロードしようとしました。しかし、Proteus のシミュレーションは中止され、elf ファイルにエラーが表示されました。
.hex ファイルを正常にロードして、シミュレーションを実行できます。また、他のツールチェーンによって生成された実行可能ファイルを使用してデバッグを行いました。しかし、GNU ツール チェーンを使用したデバッグは、私の前にハードルとして立っています。
以下に示すように、リンカースクリプトを自分で作成しました。その中で私が見逃しているものはありますか?