問題タブ [lld]

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 投票する
2 に答える
5073 参照

llvm-clang - lld 未定義シンボル: mainCRTStartup

私のcppコード:

次のコマンドを使用して、コンパイルおよびリンクします。

私は何か見落としてますか?

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

c++ - lldb を使用してデバッグするときに、より高い行番号がブレークポイントとして解決されない

Brainfsck でマンデルブロー集合を計算する MIPS32r6 プログラムにブレークポイントを設定しようとしています。プログラム自体は C++ で書かれ、Clang でコンパイルされ、LLDB でデバッグしています。

私が抱えている問題は、LLDB では、主に低い行番号に特定のブレークポイントを問題なく設定できることです。ただし、Main.cpp の 70 行目以降では、ブレークポイントが「未解決」として表示されます (ブレークポイント リストを実行すると完全に適切なアドレスが表示されますが)。つまり、70 行目以降に設定しようとしたブレークポイントはすべて未解決として表示され、70 行目より前の適切なブレークポイントはすべて問題なく解決さます

ここにリンクしたバイナリのコピーを配置しました: http://filebin.ca/2tJzo2LLBJWO/MipsTest.bin

Main.cpp のコピー: https://paste.ee/p/WYs8Y

私は次のオプションで構築しています:

現時点では、何がこの問題を引き起こしているのかわかりません。

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

c++ - LLD - 不明な引数: -arch

Mac OS Sierra で LLVM 4.0.0 リリース (Clang、LLD) を使用して単純なプログラムをリンクしようとしています。これは Linux で完全に実現可能です。

現在のパスには、LLVM のbinディレクトリがプレフィックスとして付けられています (つまり、 /opt/LLVM/4.0.0/bin:$PATH.

プログラム ( main.cpp) は、考えられる最も単純な C++ アプリケーションです。

発行されるシェル コマンドは次のとおりclang -fuse-ld=lldです。
これは次のエラーで失敗します。

スイッチを使用すると-v、次のリンカー コマンド (フォーマット済み) が表示されます。

このプラットフォームに適したスイッチを知っている人はいますか?

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

elf - 関数の間違った開始アドレスと終了アドレスを示す objdump

テスト目的で、llvm リンカーによって生成される PLT スタブlldを変更しました。

以前のスタブは次のとおりです。

プログラムをこの (元の) スタブにリンクして検査するとobjdump、次のような結果が得られます。

最後に NOP を追加するだけで PLT スタブを変更しました。

PltEntrySizeサイズの変更を反映するように、変数を変更するようにしました。この変更を加えたプログラムをリンクして実行すると、問題なく動作するようです。

しかし、リンクされたプログラムの逆アセンブルを で検査しようとするとobjdump、奇妙なことがわかります。

PLT スタブのアドレスは によって にあると解釈さobjdumpれます0x2012d0が、実際のprintf@pltアドレスは0x2012d8!にあります。これは次のように確認されていreadelf -sます。

はどこobjdumpからその情報を取得しますか? リンカーで何かを変更するのを忘れた可能性が非常に高いです。

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

c++ - LLVM LLDとの連携がうまくいかない【macos】

次のコンパイル コマンドは、clang6.0 で実行されます。

与えます:

ロードできない理由がわかり/usr/local/opt/myllvm6.0rc1/lib/libLTO.dylibません(この場所に存在します!)何か考えはありますか?