如何使用Android构建的CMAKE GERTATOR-EXPEXPRYS生成Clang编译器标志
How to generate clang compiler flag using CMake generator-expression for android build
我试图将clang预编译器用于此处的CMAKE:https://gist.github.com/leeor/316168500765cf51ae97
这是此处的拉动请求:https://github.com/larsch/cmake-precompiled-header
这样做时,我在export_all_flags函数的第22行中遇到了一个错误:
CMake Error at cmake/Modules/android/PrecompiledHeader.cmake:22 (file):
Error evaluating generator expression:
$<BOOL:-isystem /Users/XXXXX/Library/Android/sdk/ndk-bundle/sysroot/usr/include/arm-linux-androideabi -D__ANDROID_API__=24 -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -fno-integrated-as -mthumb -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions -std=c++14 -pthread -DUSE_FILE32API=1 -DCC_ENABLE_CHIPMUNK_INTEGRATION=0 -DCC_ENABLE_SCRIPT_BINDING=0 -DCC_USE_PHYSICS=0 -DCC_LUA_ENGINE_DEBUG=0 -DCC_USE_3D_PHYSICS=0 -DCC_ENABLE_BULLET_INTEGRATION=0 -DCC_USE_NAVMESH=0 -DCC_USE_TIFF=0 -DCC_USE_WEBP=0 -DRAPIDJSON_HAS_STDSTRING=1 -std=c++11 -Wno-deprecated-declarations -Wno-reorder -Wno-invalid-offsetof -fPIC -stdlib=libc++ -fsigned-char -latomic>
$<BOOL> expression requires exactly one parameter.
cmake Generator-Expression的正确使用是什么来生成正确的编译器选项列表,然后将其传递给Clang Compiler?
注意:
如果我更换
set(_cmake_cxx_flags "$<$<BOOL:${CMAKE_CXX_FLAGS}>:$<JOIN:${CMAKE_CXX_FLAGS},n>n>")
set(_cmake_cxx_flags "$<$<JOIN:${CMAKE_CXX_FLAGS},n>n>")
我有不同的错误:
Error evaluating generator expression:
$<$<JOIN:-isystem /Users/XXXXX/Library/Android/sdk/ndk-bundle/sysroot/usr/include/arm-linux-androideabi -D__ANDROID_API__=24 -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -fno-integrated-as -mthumb -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions -std=c++14 -pthread -DUSE_FILE32API=1 -DCC_ENABLE_CHIPMUNK_INTEGRATION=0 -DCC_ENABLE_SCRIPT_BINDING=0 -DCC_USE_PHYSICS=0 -DCC_LUA_ENGINE_DEBUG=0 -DCC_USE_3D_PHYSICS=0 -DCC_ENABLE_BULLET_INTEGRATION=0 -DCC_USE_NAVMESH=0 -DCC_USE_TIFF=0 -DCC_USE_WEBP=0 -DRAPIDJSON_HAS_STDSTRING=1 -std=c++11 -Wno-deprecated-declarations -Wno-reorder -Wno-invalid-offsetof -fPIC -stdlib=libc++ -fsigned-char -latomic,
>
>
Expression did not evaluate to a known generator expression
多亏了tsyvarev评论,我能够通过使用
来解决错误 string(REPLACE " " "n" _cmake_cxx_flags ${CMAKE_CXX_FLAGS})
我仍然有问题,因为clang 在尝试输出多个文件时会抱怨使用-o选项,但至少编译器选项正在工作。
相关文章:
- 为什么 gcc 和 clang 为函数模板的实例化生成不同的符号名称?
- Clang 是否可以在使用可见性属性时生成导入库(不带 __declspec(dllexport))?
- 你如何为 clang 和 gcc 编写生成文件?
- clang++ 总是生成空的 profraw 覆盖率报告
- 未优化的 clang++ 代码在琐碎的 main() 中生成不需要的"movl $0, -4(%rbp)"
- Clang在手动链接时不会生成PROFRAW文件
- Clang 使用 LibTooling Rewriter 生成新文件
- ASIN 使用 Clang 在不同的平台上生成不同的答案
- 当我尝试使用 AVX 功能时,Clang 会生成错误
- clang和gcc为相同的代码生成不同的逻辑.哪个是正确的
- 在 Clang 中生成默认构造函数
- 如果stack-protector已打开,为什么clang会生成RSQRT
- 如何使用Android构建的CMAKE GERTATOR-EXPEXPRYS生成Clang编译器标志
- 初始化全局变量时,Clang-4.0会生成冗余方法
- 如何将 /bigobj 开关添加到与 ms 代码生成 clang 的 clang
- 如何使用Clang从C++字符串生成AST
- 为什么GCC在这个递归Fibonacci代码中生成的程序比Clang更快
- 创建一个可以在 Windows 环境中的现有生成文件项目上运行的 clang 工具
- 有没有办法告诉 clang 在没有其他优化的情况下生成 TBAA 元数据
- 静态表生成适用于 GCC,但不适用于 clang;被叮当窃听