1

biicode からの提案に従って、OpenGL 関連のブロックを Mac でコンパイルするために、CMakeLists.txt ファイルの 1 つでオフにした BII_IMPLICIT_RULES_ENABLED フラグについて疑問に思っていました。この設定はまだそこにあり、すべてが完全に機能しますが、それについてもっと知りたいと思います. 誰かがそれが正確に何をするのか説明できますか?

ありがとう!

4

1 に答える 1

1

BII_IMPLICIT_RULES_ENABLED は、特定のヘッダーを含むターゲットへのシステム ライブラリの追加を有効にします。たとえば、コードに次のものが含まれているとします。

#include "math.h"

*nix システムでは、ライブラリ "m" (libm) が TARGET_LINK_LIBRARIES 経由でターゲットに追加されます。HANDLE_SYSTEM_DEPS で、cmake/biicode.cmake ファイルで処理されるヘッダーを確認できます。

私の推奨事項:可能な限りFalseに設定し、必要なシステムライブラリを自分で処理してください。まさにあなたが行ったことです。これはまもなく非推奨になるか、少なくとも新しいプロジェクトではデフォルトで False に設定されるものです。このオプションは、何かが失敗したり、biicode.cmake にバグがある場合に問題を引き起こすことがあります。たとえば、過去に Windows でもターゲットに libm を追加しようとしました。これは徐々に非推奨になり、ホストされているいくつかの CMake マクロ ( http://www.biicode.com/biicode/cmakeなど) に置き換えられる可能性があります。これは、ユーザーが使用することを決定した場合に使用できますが、現在行われているように自動的には使用されません。

于 2014-12-25T19:54:34.697 に答える