1

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

谢谢!

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 中存在错误,例如在过去它试图将 libm 添加到 Windows 中的目标。它将逐渐被弃用,并可能被一些托管的 CMake 宏所取代(如http://www.biicode.com/biicode/cmake),如果用户决定使用这些宏,用户可以使用,但不会像现在那样自动使用。

于 2014-12-25T19:54:34.697 回答