0

RA プロジェクトの一環として、Tor のソース コードを見ています。あるシステム (SuSE) でスレッドを使用するように自動的にコンパイルされ、別のシステム (Solaris) で新しいプロセスをフォークする理由を理解しようとしています。が呼び出されるソース コード内の場所はわずかであり、fork()定義されているさまざまなシンボル (ENABLE_THREADING や USE_PTHREADS など) に依存しています。ファイルを検索しましたが、必要なシンボルのほとんどの定義を見つけることができませんでした。

この問題の解決策を具体的に探しているわけではありませんが、より一般的なガイドラインを探しています。システム依存のコンパイルに関連するシンボルは、どこでどのように定義されていますか?

4

2 に答える 2

1

正直なところわかりませんが、これが私の推測です

これらは、 で定義されているマクロMakefileです。多くの場合、Makefileはある種の./configureスクリプトによって動的に生成されます。

C および C++ では、マクロであることがより明確になるように、すべてのマクロを大文字とアンダースコアにするのが一般的な規則であることに注意してください。もちろん、これは単なる慣例であり、必須ではありません。

最後に、grepあなたの友達になることができます。ソースディレクトリで次のようなことを試してください:

grep -R "ENABLE_THREADING" *

これにより、そのマクロを使用または定義しているすべてのファイルが検索されます。

于 2011-06-15T12:44:07.360 に答える
0

これらはconfigure、 を使用したビルドの一部で生成されautotoolsます。

于 2011-06-15T12:45:07.150 に答える