加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何在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支持.
我该怎么办呢?我错过了travis.yml中的内容吗?

解决方法

您的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,但它是一个可用的解决方法.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读