我正在修复一些使用高于 3.10 的版本制作的 CMake 文件,但应该已编码为与 3.10 兼容。
有一个特定的行:
add_compile_definitions(SOME_BOOL_VARIABLE)
Run Code Online (Sandbox Code Playgroud)
我不知道如何更改以使其适用于 3.10 版。该add_definitions(SOME_BOOL_VARIABLE)
命令是我尝试过的显而易见的事情,但会产生“没有这样的目录文件”的错误。
从CMake的文档,的功能add_definitions()
和add_compile_definitions()
实质上相同的:
将预处理器定义添加到当前目录及以下目标的编译器命令行(无论是在调用此命令之前还是之后添加)。
不同之处在于命令参数接受的语法。较旧的add_definitions()
命令要求在-D
每个定义之前添加标志。
add_definitions(-DSOME_BOOL_VARIABLE)
Run Code Online (Sandbox Code Playgroud)
较新的add_compile_definitions()
命令(在 CMake 3.12 及更高版本中可用)更清晰,并且不需要-D
标志前缀。
如果您正在重构代码,现代 CMake 鼓励采用以目标为中心的方法。只要有可能,您应该更喜欢使用该target_compile_definitions()
命令将预处理器定义仅添加到需要它们的目标。
target_compile_definitions(MyLibraryTarget PRIVATE SOME_BOOL_VARIABLE)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1094 次 |
最近记录: |