首页 > 其他分享 >命令行开发工具

命令行开发工具

时间:2024-07-08 23:20:03浏览次数:12  
标签:文件 Qt GNU 生成 开发工具 Unix MinGW 命令行

GNU 工具集

在上个世纪八十年代,计算机都是奢侈品,操作系统里最著名的是 Unix 家族, 当时还没有 Windows、Linux 之类的,Unix 系统都是商业软件,里面的应用软件也是商业软件, 全是封闭的环境。系统程序员 Richard M. Stallman (RMS) 在此环境下创立了与众不同的 GNU 项目 (GNU's Not Unix) , 以及推进自由软件发展的 Free Software Foundation (FSF) 自由软件基金会。 GNU 项目是为了创建自由的类 Unix 系统,也因此开发出来很多开源的系统工具,其中非常著名的就是 GCC(GNU Compiler Collection,GNU 编译器套件)。 在 GNU 工具集里面,开发时常见到的几个罗列如下(这些工具通常位于 Linux 或 Unix 系统里的 /usr/bin/ 目录):

工具 描述
gcc GNU C 语言编译器。
g++ GNU C++ 语言编译器。
ld GNU 链接器,将目标文件和库文件链接起来,创建可执行程序和动态链接库。
ar 生成静态库 .a ,可以编辑和管理静态链接库。
make 生成器,可以根据 makefile 文件自动编译链接生成可执行程序或库文件。
gdb 调试器,用于调试可执行程序。
ldd 查看可执行文件依赖的共享库(扩展名 .so,也叫动态链接库)。

MinGW

原本 GNU 工具只在 Linux/Unix 系统里才有,随着 Windows 系统的广泛使用, 为了在 Windows 系统里可以使用 GNU 工具,诞生了 MinGW(Minimalist GNU for Windows) 项目,利用 MinGW 就可以生成 Windows 里面的 exe 程序和 dll 链接库。 需要注意的是,MinGW 与 Linux/Unix 系统里 GNU 工具集的有些区别:

  • MinGW 里面工具带有扩展名 .exe, Linux/Unix 系统里工具通常都是没有扩展名的。
  • MinGW 里面的生成器文件名为 mingw32-make.exe,Linux/Unix 系统里就叫 make
  • MinGW 在链接时是链接到 *.a 库引用文件,生成的可执行程序运行时依赖 *.dll,而 Linux/Unix 系统里链接时和运行时都是使用 *.so
  • 另外 MinGW 里也没有 ldd 工具,因为 Windows 不使用 .so 共享库文件。如果要查看 Windows 里可执行文件的依赖库,需要使用微软自家的 Dependency Walker 工具。 Windows 里面动态库扩展名为 .dll,MinGW 可以通过 dlltool 来生成用于创建和使用动态链接库需要的文件,如 .def.lib

MinGW 原本是用于生成 32 位程序的,随着 64 位系统流行起来, 从 MinGW 分离出来了 MinGW-w64 项目,该项目同时支持生成 64 位和 32 位程序。

另外提一下,由于 MinGW 本身主要就是编译链接等工具和头文件、库文件,并不包含系统管理、文件操作之类的 Shell 环境, 这对希望用类 Unix 命令的开发者来说还是不够用的。 所以 MinGW 官方又推出了 MSYS(Minimal SYStem),相当于是一个部署在 Windows 系统里面的小型 Unix 系统环境, 移植了很多 Unix/Linux 命令行工具和配置文件等等,是对 MinGW 的扩展。 MSYS 对于熟悉 Unix/Linux 系统环境或者要尝试学习 Unix/Linux 系统的人都是一种便利。 MSYS 和 MinGW 的安装升级都是通过其官方的 mingw-get 工具实现,二者是统一下载安装管理的。 对于 MinGW-w64 项目,它对应的小型系统环境叫 MSYS2(Minimal SYStem 2),MSYS2 是 MSYS 的衍生版,不仅支持 64 位系统和 32 位系统, 还有自己的独特的软件包管理工具,它从 Arch Linux 系统里移植了 pacman 软件管理工具,所以装了 MSYS2 之后, 可以直接通过 pacman 来下载安装软件,而且可以自动解决依赖关系、方便系统升级等。 装了 MSYS2 之后,不需要自己去下载 MinGW-w64,可以直接用 pacman 命令安装编译链接工具和 git 工具等。

CMake

CMake(Cross platform Make)是一个开源的跨平台自动化构建工具, 可以跨平台地生成各式各样的 makefile 或者 project 文件, 支持利用各种编译工具生成可执行程序或链接库。CMake 自己不编译程序, 它相当于用自己的构建脚本 CMakeLists.txt,叫各种编译工具集去生成可执行程序或链接库。 一般用于编译程序的 makefile 文件比较复杂,自己去编写比较麻烦, 而利用 CMake ,就可以编写相对简单的 CMakeLists.txt ,由 CMake 根据 CMakeLists.txt 自动生成 makefile,然后就可以用 make 生成可执行程序或链接库。

Qt 工具集

Qt 官方的开发环境安装包里有自己专门的开发工具。 qmake 是 Qt 开发最核心的工具,既可以生成 Qt 项目文件 .pro , 也可以自动生成项目的 Makefile 文件。这里将常用的 Qt 开发工具列表如下:

工具 描述
qmake 核心的项目构建工具,可以生成跨平台的 .pro 项目文件,并能依据不同操作系统和编译工具生成相应的 Makefile,用于构建可执行程序或链接库。
uic User Interface Compiler,用户界面编译器,Qt 使用 XML 语法格式的 .ui 文件定义用户界面,uic 根据 .ui 文件生成用于创建用户界面的 C++ 代码头文件,比如 ui\_**\***.h
moc Meta-Object Compiler,元对象编译器,moc 处理 C++ 头文件的类定义里面的 Q*OBJECT 宏,它会生成源代码文件,比如 moc**\*\***.cpp,其中包含相应类的元对象代码,元对象代码主要用于实现 Qt 信号/槽机制、运行时类型定义、动态属性系统。
rcc Resource Compiler,资源文件编译器,负责在项目构建过程中编译 .qrc 资源文件,将资源嵌入到最终的 Qt 程序里。
qtcreator 集成开发环境,包含项目生成管理、代码编辑、图形界面可视化编辑、编译生成、程序调试、上下文帮助、版本控制系统集成等众多功能,还支持手机和嵌入式设备的程序生成部署。
assistant Qt 助手,帮助文档浏览查询工具,Qt 库所有模块和开发工具的帮助文档、示例代码等都可以检索到,是 Qt 开发必备神器,也可用于自学 Qt。
designer Qt 设计师,专门用于可视化编辑图形用户界面(所见即所得),生成 .ui 文件用于 Qt 项目。
linguist Qt 语言家,代码里用 tr() 宏包裹的就是可翻译的字符串,开发人员可用 lupdate 命令生成项目的待翻译字符串文件 .ts,用 linguist 翻译多国语言 .ts,翻译完成后用 lrelease 命令生成 .qm 文件,然后就可用于多国语言界面显示。
qmlscene 在 Qt 4.x 里是用 qmlviewer 进行 QML 程序的原型设计和测试,Qt 5 用 qmlscene 取代了旧的 qmlviewer。新的 qmlscene 另外还支持 Qt 5 中的新特性 scenegraph。

转自:Qt 编程指南 - 1.5 认识开发工具

标签:文件,Qt,GNU,生成,开发工具,Unix,MinGW,命令行
From: https://www.cnblogs.com/Undefined443/p/18290862

相关文章

  • vbc.exe 是 Microsoft Visual Basic 编译器的命令行工具。它用于编译 Visual Basic (.
    vbc.exe是MicrosoftVisualBasic编译器的命令行工具。它用于编译VisualBasic(.NET)的源代码文件(.vb文件)到可执行文件或者库文件(例如.exe或.dll)。vbc.exe提供了一种方式来将VisualBasic源代码编译成在.NETFramework或.NETCore平台上可执行的程序。......
  • csc.exe 是 Microsoft Visual C# 编译器的命令行工具。它用于编译 C# 源代码文件 (.cs
    csc.exe是MicrosoftVisualC#编译器的命令行工具。它用于编译C#源代码文件(.cs文件)到可执行文件或者库文件(例如.exe或.dll)。具体来说,csc.exe是用来将C#源代码编译成.NETFramework或.NETCore平台上的可执行文件或者库的工具。以下是一些常见用途和特点:......
  • 命令行版的ChatGPT(修改版)
    本帖最后由CrLf于2023-7-2900:17编辑命令行下调用OpenAI接口,从标准输入中读取用户输入并将其发送到GPT模型,再将响应写入标准输出。因原版默认是UTF8,所以我改成默认以GBK编码读取输入,并增加--utf8开关兼容utf8编码。原版GitHub:https://github.com/pdfinn/sgpt用法:sg......
  • C语言 指针和数组——指针数组的应用:命令行参数
    目录命令行参数演示命令行参数与main函数形参间的关系命令行参数什么是命令行参数(CommandLineArguments)?GUI界面之前,计算机的操作界面都是字符式的命令行界面(DOS、UNIX、Linux)例如,在DOS下拷贝文件用copyfile1.cfile2.c不......
  • 命令行修改MySQL5.7数据库密码
    命令行修改MySQL5.7数据库密码命令行修改MySQL5.7数据库密码教程概述本教程将教会刚入行的小白如何使用命令行方式修改MySQL5.7数据库密码。通过以下步骤,你将能够完成密码修改操作。步骤步骤描述1进入命令行终端2登录MySQL数据库3切换到MySQL系统数据库......
  • SQL Server 提供了多个命令行工具,用于执行管理任务、数据操作、脚本执行等。以下是几
    SQLServer提供了多个命令行工具,用于执行管理任务、数据操作、脚本执行等。以下是几个主要的命令行工具:sqlcmd:这是最常用的SQLServer命令行工具,用于执行Transact-SQL脚本、查询以及批处理操作。它通过命令行界面与SQLServer交互,支持脚本文件的读取和执行,结果可以输出到文......
  • 在 Microsoft SQL Server 2012 中,可以使用 sqlcmd 命令行工具来执行 Transact-SQL 脚
    sqlcmd实用工具-SQLServer|MicrosoftLearn在MicrosoftSQLServer2012中,可以使用sqlcmd命令行工具来执行Transact-SQL脚本和命令。这个工具提供了一种在命令行下管理和操作SQLServer的便捷方式。以下是一些sqlcmd命令的实例用法:连接到SQLServer实例bashC......
  • 在Linux中,想在命令行下访问某个网站,并且该网站域名还没有解析,如何做?
    在Linux命令行下访问某个网站,但遇到该网站域名还没有解析的情况,确实会带来一些挑战。因为域名解析是互联网访问的基本前提,它负责将人类可读的域名转换为计算机可理解的IP地址。如果域名没有解析,那么直接通过域名访问网站是不可能的。不过,可以尝试以下几种方法来间接处理或绕过这个......
  • 采用Java语言+开发工具 Idea+ scode数字化产科管理平台源码,产科管理新模式
    采用Java语言+开发工具Idea+scode数字化产科管理平台源码,产科管理新模式数字化产科管理系统是现代医疗信息化建设的重要组成部分,它利用现代信息技术手段,对孕产妇的孕期管理、分娩过程及产后康复等各个环节进行数字化、智能化管理,以提升医疗服务质量和效率;以下是对数字化......
  • IISRESET 是用于重启 Microsoft Internet Information Services(IIS)的命令行工具。它通
    IISRESET命令起源于Microsoft开发的InternetInformationServices(IIS),这是一种用于Windows操作系统的强大的Web服务器软件。IIS早在WindowsNT3.51的时候就已经存在,而IISRESET命令则是作为管理和操作IIS服务的一部分而引入的。具体来说,IISRESET命令的主要功能是......