作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有 ubuntu 18.04 和 gcc 版本 7。
我使用替代品将 gcc 更新到版本 8,并将我的 gcov 版本从属到 gcc 以保持它们兼容(这对 nicley 有效),但是 gcovr
本身卡在 3.4 版本,它需要是 ~version 4.x
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 700 \
--slave /usr/bin/g++ g++ /usr/bin/g++-7 \
--slave /usr/bin/gcov gcov /usr/bin/gcov-7
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 800 \
--slave /usr/bin/g++ g++ /usr/bin/g++-8 \
--slave /usr/bin/gcov gcov /usr/bin/gcov-8
我进行了一些研究,我认为 gcovr 我只是一个 python 脚本。我安装了 python 2.7,也安装了 python .36。
sudo -H pip install gcovr
Requirement already satisfied: gcovr in /usr/lib/python2.7/dist-packages
这个网站显示了我需要的版本:
here
Python gcovr
2.6 3.4
3.4 4.1
所以我知道我想要什么以及我需要去哪里,但我不知道如何去那里。我认为我的 pip install 命令调用了 python 2.7 pip(我的 python 知识基本上为零),所以我觉得我需要为 python 3.6 调用 pip 以获得我想要的 gcovr 版本(可能在这里很远)。知道我有各种版本的python,看起来我的默认版本是2.7:
python --version: 2.7
有什么线索可以让我更新 gcovr(甚至我的 python 版本默认为 3.x)?
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 1
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 2
现在我可以在 python 2.x 和 3.x 之间切换。当我将 python 设置为 3.x 并尝试安装 gcovr 时,我得到:
sudo -H pip install gcovr
Collecting gcovr
Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:852)'),)': /simple/gcovr/
Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:852)'),)': /simple/gcovr/
Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:852)'),)': /simple/gcovr/
Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:852)'),)': /simple/gcovr/
Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:852)'),)': /simple/gcovr/
Could not find a version that satisfies the requirement gcovr (from versions: )
No matching distribution found for gcovr
我想我可以下载更新版本的 gcovr 脚本...
最佳答案
Gcovr 独立于 GCC 版本,但 GCC 8 确实稍微改变了覆盖格式。这些更改首先在 gcovr 4.0 中实现,但在 gcovr 4.2 中添加了进一步的改进。如果您使用的编译器不是名为 gcc
的编译器或 g++
在您的路径中,您应该告诉 gcovr 它需要使用哪个 gcov 版本(例如 gcovr --gcov-executable gcov-7 ...
)。
在这种情况下的问题是 python
和 pip
一般指的是 Python 2.7 版本,而不是 Python 3 版本。 Python 3.x 变体可用作 python3
和 pip3
.因此,正确的调用将是:
$ sudo pip3 install gcovr
(如果安装到您的主目录中,也应该在没有 sudo 的情况下工作。)
python -m pip ...
:
$ sudo /path/to/your/python3 -m pip install gcovr
如果要升级现有的已安装 Python 包,则必须明确告诉 pip 这样做:
$ pip install -U gcovr
然而 ,您不得使用 pip 更新通过 apt 安装的软件包。相反,首先删除 apt 包,例如与
sudo apt-get remove gcovr
.
gcovr == 4.2
(但记得使用引号):
$ pip3 install 'gcovr == 4.2'
你不应该使用镜像,除非你的本地网络环境需要这样做,例如。如果您没有互联网连接。如果您受到 TLS 拦截(本质上是破坏普通证书验证的中间人攻击),您可能希望通过
pip --cert /path/to/ca ...
告诉 pip 您的替代 CA。 .但是,如果您不想从 PyPI 安装,您也可以从 Github 安装,例如
pip install git+https://github.com/gcovr/gcovr.git
对于开发版本,或
pip install https://github.com/gcovr/gcovr/archive/4.2.tar.gz
对于特定版本。
python
引用 Python 3 - 这将破坏您系统上的许多程序,可能包括重要的操作系统组件。相反,始终明确使用
python3
如果你想要 Python 3。
关于python - 如何更新/安装 gcovr 以匹配我更新的编译器 gcc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65581636/
我是一名优秀的程序员,十分优秀!