Build Tools¶
GNU Autotools¶
-
GNU Build System
-
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
-
Awesome CMake: A curated list of awesome CMake resources, scripts, modules, examples and others.
-
ccmake is the CMake curses interface
- CGold: The Hitchhiker’s Guide to the CMake
- CMake如何查找链接库
安装最新版本¶
remove the old (optional)
download: https://cmake.org/download/
install
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
基本命令¶
在项目根目录运行编译命令并指定生成文件目录
在项目根目录运行命令生成可执行文件
install
cmake --build . --target install --config Debug
# In CMake 3.15 and newer
cmake --install . --config Debug
make¶
Andoid ndk-build¶
- Android Native Cpp
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