なんらかの理由で、間違ったopensslv.hヘッダがcmake経由でインクルードされていると思います。私は "OPENSSL_VERSION_NUMBER"の値がバイナリにコンパイルされていることを確認して印刷したいと思います。 どうすればいいですか?バイナリにコンパイルされた#defineはどのようにチェックするのですか?
1
A
答えて
0
@Galikのコメントには、ソースを編集できる場合にマクロの値を印刷することができます。
すべてがバイナリの場合は、コンパイラがソースを参照する前にプリプロセッサがそのマクロ名をその値に置き換えてしまうため、難しくなります。バイナリには元のマクロ名に戻る "リンク"は含まれていません。それは、より良いエラーメッセージを印刷して、より効果的なデバッグを行うことができますので、有効にデバッグシンボルを構築する際に
いくつかのコンパイラバイナリででき埋め込み、そのような情報(私の経験を打ち鳴らすでは最高のそれをしません)。 しかし、デバッグシンボルを持たない最適化されたバイナリでは、運が悪いことに近いです。つまり、マクロが使用されていることを知っているバイナリの逆アセンブルを開始し、潜在的な値を知っていない限り、その後、あなたはかもしれないそれを掘ることができる。
関連する問題
- 1. バイナリはどのようにコンパイルされていますか?
- 2. コンパイルされたバイナリのサイズは、使用するライブラリにどのように依存しますか? c/C++
- 3. Rustはマシンコードにどのようにコンパイルされますか?
- 4. ダーツはどのようにjavascriptにコンパイルされますか?
- 5. #defineはSwiftでどのように機能しますか?
- 6. MacOSXでSubsurfaceの静的バイナリをコンパイルするにはどうすればよいですか?
- 7. このメタプログラミングはどのようにコンパイルされますか?
- 8. "POSIX"のためにコンパイルするにはどうすればよいですか?
- 9. テーブルのヌル値はどのようにチェックされますか?
- 10. C++はどのようにコンパイルされますか
- 11. データバインドされたItemsControl内のチェックされたラジオボタンにはどのようにアクセスできますか?
- 12. [DebuggerDisplay]などのデバッグ属性は、まだリリースのバイナリにコンパイルされますか?
- 13. コンパイル中にシグナル/スロット接続のチェックを行うにはどうすればよいですか?
- 14. 組み込み環境で#defineとenumをコンパイルするにはどうすればいいですか?
- 15. #defineはどのように使用しますか?
- 16. どのようにF#タイププロバイダは、コンパイル時に型をチェックしますか
- 17. コンパイルされたバイナリが32ビットか64ビットかどうかをどうやって確認できますか?
- 18. ghcコンパイルされたバイナリを他のマシンで実行するには?
- 19. JavaのJITコンパイルはどのように動的にコンパイルされた命令をメモリにロードしますか?
- 20. V8のコンパイルされた手順をChromiumコンソールに印刷するにはどうすればよいですか?
- 21. gdb:-gなしでコンパイルされたバイナリと-gなしでコンパイルされたバイナリとの比較
- 22. 前の行をチェックして削除したときに行チェックがスキップされないようにするにはどうすればよいですか?
- 23. OSはどのようにコンパイルされたバイナリファイルを実行しますか?
- 24. コンパイルされたプログラムはどのようにOSと対話しますか?
- 25. これらの削除されたバイナリでは、ダイナミックリンカはどのように機能しますか?
- 26. どのようにプログラムのコンパイル言語をチェックできますか?
- 27. 以前にチェックされたチェックボックスをオフにするにはどうすればよいですか?
- 28. どのようにvimがコンパイルされたオプションを確認できますか?
- 29. Groovy Script Engineでコンパイルされたクラスをどのようにキャッシュしますか?
- 30. Visioがインストールされているかどうか、どのようにプログラムでチェックするのですか?
'std :: cout << OPENSSL_VERSION_NUMBER << '\ n';'? – Galik
@GalikにはCとC++を混在させる特別な理由はありますか?なぜ 'std :: endl'を使わないのですか? '\ n'を使いたいなら' std :: cout'を使うつもりなら 'printf'にしてください。それはすべてのステートメントのために保持されている標準でなければならず、標準ライブラリを使い続けるべきです。 – Ingenioushax
Galik、ライブラリです – Blub