跳转至

Build Tools


GNU Autotools

  • GNU Build System

    Bash
    ./configure && make && make install
    

  • Autotools Tutorial

  • Autoconf is an extensible package of M4 macros that produce shell scripts to automatically configure software source code packages

  • Automake

  • GNU libtool is a generic library support script. Libtool hides the complexity of using shared libraries behind a consistent, portable interface.

  • Gettext

CMake

CMake is an open-source, cross-platform family of tools designed to build, test and package software

安装最新版本

remove the old (optional)

Bash
sudo apt autoremove cmake

download: https://cmake.org/download/

install

Bash
tar xvzf cmake-3.24.1-linux-x86_64.tar.gz
sudo ln -sf ~/tools/cmake-3.24.1-linux-x86_64/bin/*  /usr/bin/

# or
sudo ./cmake-3.22.1-linux-x86_64.sh --prefix=/usr/ --skip-license

基本命令

Bash
cmake ..
make -j$(nproc)

在项目根目录运行编译命令并指定生成文件目录

Bash
cmake -B cmake-build-debug

在项目根目录运行命令生成可执行文件

Bash
cmake --build cmake-build-debug

install

Bash
cmake --build . --target install --config Debug

# In CMake 3.15 and newer
cmake --install . --config Debug

make

Bash
make -j$(nproc)

Andoid ndk-build

  • Android Native Cpp
    Bash
    # .mk file
    ndk-build
    

Ninja

Ninja is a small build system with a focus on speed. It differs from other build systems in two major respects: it is designed to have its input files generated by a higher-level build system, and it is designed to run builds as fast as possible.

Bazel

Bazel: a fast, scalable, multi-language and extensible build system

Meson

Meson is an open source build system meant to be both extremely fast, and, even more importantly, as user friendly as possible.

SCons: A software construction tool

SCons is an Open Source software construction tool — that is, a next-generation build tool. Think of SCons as an improved, cross-platform substitute for the classic Make utility with integrated functionality similar to autoconf/automake and compiler caches such as ccache. In short, SCons is an easier, more reliable and faster way to build software.

Apache Ant

Apache Ant is a Java library and command-line tool whose mission is to drive processes described in build files as targets and extension points dependent upon each other. The main known usage of Ant is the build of Java applications. Ant supplies a number of built-in tasks allowing to compile, assemble, test and run Java applications. Ant can also be used effectively to build non Java applications, for instance C or C++ applications. More generally, Ant can be used to pilot any type of process which can be described in terms of targets and tasks.

Gradle

From mobile apps to microservices, from small startups to big enterprises, Gradle helps teams build, automate and deliver better software, faster.

打包工具

  • InstallShield
  • MS Visual Studio Installer
  • Enigma Virtual Box(单文件打包)
  • NSIS(Nullsoft Scriptable Install System)

IDE

  • Visual Studio

    • Extensions
    • VAX
    • ReSharper by JetBrains
  • Eclipse、MyEclipse、Eclipse RCP

  • PyCharm by JetBrains - Powerful Python and Django IDE

  • WebStorm by JetBrains - The Smartest JavaScript IDE

  • IntelliJ IDEA by JetBrains - the Java IDE

  • MonoDevelop

  • Linux

    • Qt Creator
    • CodeBlocks
    • Anjuta DevStudio
    • GNOME
    • KDevelope
    • KDE