![](/img/trans.png)
[英]Linux how do I put double quotes around a file before piping it to tar?
[英]How do I install Cppcheck using the tar file on Linux?
我正在嘗試通過telnet在Linux機器上安裝Cppcheck。 我有cppcheck-1.67.tar文件,我解開它。 我沒有看到任何可以安裝它的東西。 我接近這個正確的方法嗎?
本回答的日期發布時的實際情況。
轉到下載文件夾
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
說明位於readme.txt
文件中。 簡短的回答是make install
。
記住,當您可以使用分發包管理器時,永遠不要從tar文件中安裝東西。
readme.txt文件沒有提到“make install”。
它看起來像提供的Makefile是borked:
它傳遞“CFG =”參數進行編譯,沒有DESTDIR
但是“make install”會將DESTDIR添加到CFGDIR之前
在我的例子中,我編輯了Makefile以從make install中刪除DESTDIR,而cppcheck對此感到滿意。
對我來說,魔術線在Ubuntu 18.04 (Bionic Beaver)上的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
如果您沒有sudo
權限,可以按照@Seti Volkylany的回答 ,用第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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.