我试图在Linux机器上通过telnet安装Cppcheck。我有cppcheck-1.67.tar文件,我解开它。我没有看到任何可以安装它的东西。我是以正确的方式接近这个吗?
答案 0 :(得分:3)
此答案的日期发布时的实际情况。
转到带有下载内容的文件夹
cd ~/Downloads/
解压缩档案
tar -xvf cppcheck-1.76.1.tar.bz2
转到解压缩的文件夹
cd cppcheck-1.76.1/
以root身份安装软件包
sudo make install
检查结果
$ which cppcheck
/usr/bin/cppcheck
测试
$ touch simple.c
$ echo "int main(){ int a; a + 1; return 0}" > simple.c
$ cppcheck simple.c
Checking simple.c ...
[simple.c:1]: (error) Uninitialized variable: a
此软件包也存在于标准存储库中。
$ aptitude search cppcheck
p cppcheck - tool for static C/C++ code analysis
测试环境
$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 8.6 (jessie)
Release: 8.6
Codename: jessie
$ uname -a
Linux localhost 3.16.0-4-amd64 #1 SMP Debian 3.16.36-1+deb8u2 (2016-10-19) x86_64 GNU/Linux
答案 1 :(得分:1)
说明位于readme.txt
文件中。简短的回答是make install
。
请记住,当您可以使用分发包管理器时,永远不要从tar文件中安装东西。
答案 2 :(得分:1)
readme.txt文件未提及" make install"。
看起来提供的Makefile是borked:
通过" CFG ="编译的参数,没有DESTDIR
但是" make install"将DESTDIR添加到CFGDIR
就我而言,我编辑了Makefile以从make install中删除DESTDIR,而cppcheck对此感到满意。
答案 3 :(得分:1)
在我看来,Ubuntu 18.04(仿生海狸)上的Docker的魔咒是:
RUN cd /tmp \
&& git clone https://github.com/danmar/cppcheck.git \
&& cd cppcheck \
&& git checkout 1.72 \
&& make SRCDIR=build CFGDIR=/usr/bin/cfg HAVE_RULES=yes install \
&& cd /tmp \
&& rm -rf /tmp/cppcheck \
&& ldconfig
我认为以下内容适用于任何版本。我不确定将配置安装到哪里。这对我有用:
make SRCDIR=build CFGDIR=/usr/bin/cfg HAVE_RULES=yes install
答案 4 :(得分:0)
如果您没有sudo
特权,则可以遵循@Seti Volkylany的answer,将步骤5替换为
OUT_PATH=/home/user/bin # target location of binary
make SRCDIR=build CFGDIR=~/Downloads/cppcheck-1.76.1/cfg PREFIX=$OUT_PATH
make install CFGDIR=$OUT_PATH/cppcheck-1.76.1/cfg PREFIX=$OUT_PATH