ARTICLE · 1087405
应用软件开发概念辨析:API、IDE、SDK 及其区别
应用软件是以操作系统为基础,基于操作系统提供的相应编程语言如(C++)的应用程序接口(API),利用第三方函数库(动、静态函数库)或源代码库(如OpenCV),实现特定的功能。因而软件开发离不开三件事:
开发软件开门三件事情
明确应用平台:操作系统windows, Linux 选择开发语言:C/C++, Java, Python 选择一种开发工具或开发环境
采用C/C++编写windows应用程序
利用API直接用C/C++编程 使用VC++的MFC应用程序框架 使用VC++以外的其他基于windows的应用程序框架,如QT
下面以C++编程为背景,用Qt和Visual Studio为例,系统阐释软件开发中涉及的API(Application Programming Interface)、SDK(Software Development Kit)、IDE(Integrated Development Environment)概念含义及其区别。
一、核心概念
1. API(应用程序编程接口)
API是操作系统或第三方库“接口约定”,它规定:
你可以调用哪些函数、类、方法 参数是什么、返回值是什么 调用后会发生什么行为
API 关注的是“能调用什么、怎么调用”,它本身不一定包含实现,也不一定包含工具。
在 C++ 中,API 通常表现为:
头文件中的函数声明 类声明 命名空间 接口类(纯虚类) 回调函数签名 宏定义
API是程序员与库/系统之间的契约。
2. SDK(软件开发工具包)
SDK是“开发某平台或库所需的一整套材料”,通常包括:
API 的头文件 库文件(.lib、.dll、.so、.a) 文档 示例代码 编译工具 调试工具 构建脚本 资源编译器 代码生成工具
SDK包含API,但API不等于SDK。
SDK 关注的是“拿什么来开发”。
3. IDE(集成开发环境)
IDE是“写代码、编译、调试的集成工作台”,通常包括:
代码编辑器 语法高亮、自动补全、IntelliSense 项目管理 编译器集成 调试器 构建系统 版本控制集成 性能分析工具
IDE是给人用的软件,关注的是“在哪开发、怎么高效开发”。
二、以Qt为例说明
1. Qt中的API
Qt 提供大量 C++ API,例如:
cpp
这里:
名称 | 角色 |
QApplication | Qt API 中的类 |
QPushButton | Qt API 中的类 |
QString | Qt API 中的类 |
button.show() | Qt API 中的成员函数 |
app.exec() | Qt API 中的成员函数 |
这些 API 定义在 Qt 的头文件中,例如:
你只需要知道这些类的用法,就能写代码。
Qt API解决的是:我可以用哪些类、函数来写Qt程序。
2. Qt中的SDK
Qt SDK 通常包括:
·Qt 库:
oQt5Core.dll/Qt6Core.dll
oQt5Widgets.dll/Qt6Widgets.dll
oQt5Gui.dll/Qt6Gui.dll
·头文件:
oinclude/QtCore
oinclude/QtGui
oinclude/QtWidgets
·库文件:
olib/Qt5Core.lib
olib/Qt5Widgets.lib
·工具:
omoc(元对象编译器)
ouic(UI 文件编译器)
orcc(资源编译器)
·文档:
oQt Assistant
·示例代码
·CMake / qmake 支持文件
如果你安装 Qt,通常会得到:
这一整套就是Qt SDK。
Qt SDK解决的是:我拿什么来编译、链接、运行Qt程序。
3. Qt中的IDE
Qt 官方 IDE 是Qt Creator。
Qt Creator 提供:
C++ 代码编辑器 项目管理(.pro或CMakeLists.txt) 编译构建 调试(GDB、CDB) UI 设计器 Qt Designer 集成 版本控制 代码补全
但注意:
·Qt Creator是IDE
·Qt库是API + SDK
·你也可以不用 Qt Creator,而用 Visual Studio 开发 Qt 程序
三、API、SDK、IDE的区别总结
维度 | API | SDK | IDE |
全称 | Application Programming Interface | Software Development Kit | Integrated Development Environment |
本质 | 接口约定 | 开发工具包 | 集成开发环境 |
关注点 | 能调用什么、怎么调用 | 拿什么开发 | 在哪开发、怎么高效开发 |
是否包含实现 | 不一定 | 通常包含 | 不直接提供 |
是否包含工具 | 否 | 是 | 是 |
是否给人用 | 给程序用 | 给开发者用 | 给开发者用 |
Qt 例子 | QPushButton、QString | Qt 安装目录、Qt 库、moc | Qt Creator |
VS 例子 | Windows API、.NET API | Windows SDK、.NET SDK | Visual Studio 2022 |
关系 | SDK 包含 API | SDK 可被 IDE 调用 | IDE 使用 SDK,调用 API |
四、最简理解
API:菜单,告诉你有什么菜、怎么点。 SDK:厨房全套设备 + 食材 + 菜谱,让你能做菜。 IDE:厨房工作台,让你方便地切菜、炒菜、尝味道。
以Qt + Visual Studio进行C++编程为例:
在Visual Studio(IDE)中,安装Qt VS Tools,配置Qt SDK,调用Qt API,使用MSVC编译器和Windows SDK,开发 Qt C++ 程序。
三者各司其职:
API决定你能调用什么; SDK决定你拿什么开发; IDE决定你在哪开发、怎么开发。