gpt4 book ai didi

python - 如何更新/安装 gcovr 以匹配我更新的编译器 gcc

转载 作者:行者123 更新时间:2023-12-04 18:59:31 24 4
gpt4 key购买 nike

我有 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。
我尝试使用 pip 安装 gcovr:
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)?
更新 1
我得到了一点点。我安装了 python 替代品:
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 ... )。
在这种情况下的问题是 pythonpip一般指的是 Python 2.7 版本,而不是 Python 3 版本。 Python 3.x 变体可用作 python3pip3 .因此,正确的调用将是:

$ sudo pip3 install gcovr
(如果安装到您的主目录中,也应该在没有 sudo 的情况下工作。)
如果你想为特定的 python 安装 gcovr,你可以调用 pip 像 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 版本,请使用要求规范,如 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对于特定版本。
升级 gcovr 时,还请阅读更改日志,因为在某些极端情况下,某些更改会破坏兼容性,例如围绕参数处理或启发式查找源外构建。在某些情况下,这可能会改变覆盖率指标。
另请注意,Python 2 已停产,不再受支持。下一个 gcovr 版本(预计为 4.3)将不再支持 Python 2.x 和 3.5。即使 Python 2.7 已经死了,你也不应该更改 python引用 Python 3 - 这将破坏您系统上的许多程序,可能包括重要的操作系统组件。相反,始终明确使用 python3如果你想要 Python 3。

关于python - 如何更新/安装 gcovr 以匹配我更新的编译器 gcc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65581636/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com