簡體   English   中英

如何在Linux上使用tar文件安裝Cppcheck?

[英]How do I install Cppcheck using the tar file on Linux?

我正在嘗試通過telnet在Linux機器上安裝Cppcheck。 我有cppcheck-1.67.tar文件,我解開它。 我沒有看到任何可以安裝它的東西。 我接近這個正確的方法嗎?

本回答的日期發布時的實際情況。

  1. 從那里下載文件https://sourceforge.net/projects/cppcheck/

  2. 轉到下載文件夾

     cd ~/Downloads/ 
  3. 解壓縮檔案

     tar -xvf cppcheck-1.76.1.tar.bz2 
  4. 轉到解壓縮的文件夾

     cd cppcheck-1.76.1/ 
  5. 以root身份安裝軟件包

     sudo make install 
  6. 檢查結果

     $ which cppcheck /usr/bin/cppcheck 
  7. 測試它

     $ 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:

  1. 它傳遞“CFG =”參數進行編譯,沒有DESTDIR

  2. 但是“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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM