在 CMakeLists.txt 中打开或关闭时,BII_IMPLICIT_RULES_ENABLED会做什么



我想知道我在CMakeList.txt文件之一中关闭的BII_IMPLICIT_RULES_ENABLED标志,以便按照biicode的建议在Mac上编译与OpenGL相关的块。此设置仍然存在,一切正常,但我想了解更多信息。有人可以解释一下它到底做了什么吗?

谢谢!

BII_IMPLICIT_RULES_ENABLED激活向包含某些标头的目标添加系统库。例如,如果您的代码包含:

#include "math.h"

如果你在 *nix 系统中,那么库 "m" (libm) 将通过 TARGET_LINK_LIBRARIES 添加到你的目标中。您可以在 cmake/biicode.cmake 文件中查看处理的标头,HANDLE_SYSTEM_DEPS

我的建议:尽可能将其设置为 False,并自己处理所需的系统库,这正是您所做的。它很快就会被弃用,或者至少在新项目中默认设置为 False。如果某些内容失败或biicode.cmake中存在错误,则此选项有时会引起麻烦,例如,过去它试图将libm添加到Windows中的目标中。它将逐渐弃用,并可能被一些托管的 CMake 宏(如 http://www.biicode.com/biicode/cmake 年)所取代,如果用户决定这样做,他们可以使用这些宏,但不会像现在这样自动使用。

相关内容

最新更新