1

非常に複雑な Linux ドライバーに取り組んでいます。少し「脂肪をカット」しようとして、いくつかのファイルを移動しています。「未定義!」が4つあります。リンク段階のシンボル。ソース コードを検索しましたが、これらのシンボルがどこに含まれているのか本当にわかりません。

objdump -DSコンパイル済みの .ko に対して を実行してシンボルを検索すると、周囲の逆コンパイルされたソースからそれらがどこから来たのかを知ることができるかもしれないと思いました。しかし、シンボルを検索しても見つかりません!

未定義のシンボルが含まれている場所または方法を知る方法はありますか?

4

1 に答える 1

2

わかりました、これを行う良い方法を見つけました。

以前nm -uは、オブジェクト ファイルから未定義のシンボルを一覧表示していました。(.oファイル)

nm - オブジェクトファイルからシンボルを一覧表示する

それをそれぞれで1つずつ.o実行し、未定義であることがわかっているシンボルを検索すると、それらがどのファイルから来ているかがわかりました。.c次に、実際のファイル、またはそのファイルに含まれるヘッダー ファイルでシンボルを見つけるための出発点がありました.c

今では干し草の山の中の針ではなく、干し草の山から折れた干し草の塊の中の針です.

于 2013-10-25T22:14:04.507 に答える