如何在Travis CI上安装C17的clang?
发布时间:2020-12-16 07:21:39 所属栏目:百科 来源:网络整理
导读:我正试图用clang 4.0设置Trevis CI.我需要C 17支持.我使用以下脚本: language: cppsudo: requiredos: - linuxcompiler: - clangenv: - TARGET_CPU=x86 BUILD_CONFIGURATION=Debug - TARGET_CPU=x86 BUILD_CONFIGURATION=Release - TARGET_CPU=x64 BUILD_CON
我正试图用clang 4.0设置Trevis CI.我需要C 17支持.我使用以下脚本:
language: cpp sudo: required os: - linux compiler: - clang env: - TARGET_CPU=x86 BUILD_CONFIGURATION=Debug - TARGET_CPU=x86 BUILD_CONFIGURATION=Release - TARGET_CPU=x64 BUILD_CONFIGURATION=Debug - TARGET_CPU=x64 BUILD_CONFIGURATION=Release - TARGET_CPU=amd64 BUILD_CONFIGURATION=Debug - TARGET_CPU=amd64 BUILD_CONFIGURATION=Release before_install: - sudo apt-add-repository "deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-4.0 main" - sudo apt-get update -qq install: - sudo apt-get install libboost-all-dev - sudo apt-get install --allow-unauthenticated -qq clang++-4.0 - export CXX="clang++-4.0" script: - mkdir build - cd build - cmake .. -DTARGET_CPU=$TARGET_CPU -DCMAKE_BUILD_TYPE=$BUILD_CONFIGURATION - make 尽管clang 4.0成功安装build失败并显示消息:错误:名称空间’std’中没有名为’make_unique’的成员.这意味着我甚至没有C 11支持. 解决方法
您的Clang版本应该没问题,问题是(根据我的经验)Travis不尊重各种CMake配置.出于某种原因,根据我的经验,Travis CI似乎忽略了CMake中的CMAKE_CXX_STANDARD变量.
例如,Travis将忽略我的CMakeLists.txt中的以下行(对于C 11). set(CMAKE_CXX_STANDARD 11) set(CXX_STANDARD TRUE) 如果我手动添加标志,我可以获得成功的构建: set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") 对于C 17,您希望将其更改为设置(CMAKE_CXX_STANDARD 17)并设置(CMAKE_CXX_FLAGS“${CMAKE_CXX_FLAGS} -std = c 1z”). 这些都不是理想的,IMO,但它是一个可用的解决方法. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |