网站首页 > 基础教程 正文
上面是一个开发中的经典问题场景,发生的原因通常是:开发者工作机上的某些依赖项没有安装在测试或者客户环境中,导致程序无法运行或者报错。
如何有效地避免这个尴尬的场景呢?那就需要一个持续的、可复用的自动构建流程,这样会促使团队保证他们的软件在 IDE 和开发者工作机之外也能够编译并运行基本的单元测试集。
今天给大家介绍一款非常好用的 C/C++ 项目构建工具 —— Xmake。目前它已经在 Github 收获了 2.9K star、300+ fork,并且处理了 900+ issues、5400+ Commits,star 数也超过了大部分同类构建工具,逐渐逼近 cmake。同时, Xmake 在易用性上完全赶超 cmake,对新手非常友好,短时间内就能入门。
Xmake 简介
友好 —— xmake 是一个基于 Lua 的轻量级跨平台构建工具,使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中在实际的项目开发上。
强大 —— 虽然,简单易用是 xmake 的一大特色,但 xmake 的功能也是非常强大的,既能够像 Make/Ninja 那样可以直接编译项目,也可以像 CMake/Meson 那样生成工程文件,还有内置的包管理系统来帮助用户解决 C/C++依赖库的集成使用问题。
快速 —— 目前,xmake主要用于C/C++项目的构建,但是同时也支持其他native语言的构建,可以实现跟C/C++进行混合编译,同时编译速度也是非常的快,可以跟Ninja持平。
Xmake 的安装
使用curl
bash <(curl -fsSL https://xmake.io/shget.text)
使用wget
bash <(wget https://xmake.io/shget.text -O -)
使用powershell
Invoke-Expression (Invoke-Webrequest 'https://xmake.io/psget.text' -UseBasicParsing).Content
简单的工程描述
target("console")
set_kind("binary")
add_files("src/*.c")
包依赖描述
构建工程
$ xmake
运行目标
$ xmake run console
调试程序
$ xmake run -d console
入门教程
Xmake 的作者在实验楼发布了一门 Xmake 入门和进阶课程,以边学边练习的方式快速学习 xmake 的使用,带你轻松构建 C/C++ 项目。
课程以循序渐进的方式,带你入门和进阶 xmake,从最基础的编译配置,到复杂项目的定制化组织和维护,在课程最后几节,我们还通过实战的方式,一步步带你体验第三方 C/C++ 项目的移植编译,以及 vscode/xmake 集成环境的可视化编译操作流程。最后一节实验中,我们还会讲解如何使用 xmake 和 vscode 去编译开发基于 Qt 的应用程序。
你将学到
点击了解更多,学习《Xmake 带你轻松构建 C&C++ 项目》,了解课程更多信息~
猜你喜欢
- 2025-04-26 Visual C++ 6.0软件安装包以及安装教程
- 2025-04-26 C++ Qt项目教程:WebServer网络测试工具
- 2025-04-26 C++特性使用建议
- 2025-04-26 c++11新特性总结,你都用过哪些新特性?
- 2025-04-26 AnyCAD Rapid .Net三维控件-WinForms集成教程
- 2025-04-26 编程学习C++语言初级入门100视频课程教程+80套练习题册
- 2025-04-26 环境配置:VSCode 配置 C/C++ 开发环境详细教程( MSVC )
- 2025-04-26 python和c++简单教程初级教学
- 2025-04-26 C++异步从理论到实践总览篇
- 2025-04-26 JS程序员学C++入门教程(中篇)
- 最近发表
- 标签列表
-
- 菜鸟教程 (58)
- jsp (69)
- c++教程 (58)
- gitpush (61)
- pythonif (68)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)