- 授权协议: Apache License 2.0
- 开发语言: C/C++ Objective-C Google Go D语言 Lua 汇编 Rust
- 操作系统: 跨平台
- 软件首页: https://xmake.io/cn
- 软件文档: https://xmake.io/#/zh/
软件介绍
简介
XMake是一个基于Lua的轻量级跨平台自动构建工具,支持在各种主流平台上构建项目
xmake的目标是开发者更加关注于项目本身开发,简化项目的描述和构建,并且提供平台无关性,使得一次编写,随处构建
它跟cmake、automake、premake有点类似,但是机制不同,它默认不会去生成IDE相关的工程文件,采用直接编译,并且更加的方便易用 采用lua的工程描述语法更简洁直观,支持在大部分常用平台上进行构建,以及交叉编译
并且xmake提供了创建、配置、编译、打包、安装、卸载、运行等一些actions,使得开发和构建更加的方便和流程化。
不仅如此,它还提供了许多更加高级的特性,例如插件扩展、脚本宏记录、批量打包、自动文档生成等等。。
如果你想要了解更多,请参考:
_
__ ___ __ __ __ _| | ______
\ \/ / | \/ |/ _ | |/ / __ \
> < | \__/ | /_| | < ___/
/_/\_\_|_| |_|\__ \|_|\_\____|
by ruki, tboox.org
安装
使用curl
bash使用wget
bash使用powershell
Invoke-Expression (Invoke-Webrequest 'https://raw.githubusercontent.com/tboox/xmake/master/scripts/get.ps1' -UseBasicParsing).Content简单的工程描述
包依赖描述
官方的xmake包管理仓库: xmake-repo
构建工程
$ xmake运行目标
$ xmake run console调试程序
$ xmake run -d console配置平台
$ xmake f -p [windows|linux|macosx|android|iphoneos ..] -a [x86|arm64 ..] -m [debug|release] $ xmake图形化菜单配置
$ xmake f --menu包依赖管理
支持平台
- Windows (x86, x64)
- Macosx (i386, x86_64)
- Linux (i386, x86_64, cross-toolchains ...)
- Android (armv5te, armv6, armv7-a, armv8-a, arm64-v8a)
- iPhoneOS (armv7, armv7s, arm64, i386, x86_64)
- WatchOS (armv7k, i386)
- Mingw (i386, x86_64)
支持语言
- C/C++
- Objc/Objc++
- Swift
- Assembly
- Golang
- Rust
- Dlang
- Cuda
工程类型
- 静态库程序
- 动态库类型
- 控制台程序
- Cuda程序
- Qt应用程序
- WDK驱动程序
- WinSDK应用程序
内置插件
宏记录脚本和回放插件
$ xmake m -b # 开始记录 $ xmake f -p iphoneos -m debug $ xmake $ xmake f -p android --ndk=~/files/android-ndk-r16b $ xmake $ xmake m -e # 结束记录 $ xmake m . # 回放命令
加载自定义lua脚本插件
$ xmake l ./test.lua
$ xmake l -c "print('hello xmake!')"
$ xmake l lib.detect.find_tool gcc
生成IDE工程文件插件(makefile, vs2002 - vs2017, ...)
$ xmake project -k vs2017 -m "debug,release"
生成doxygen文档插件
$ xmake doxygen [srcdir]
更多插件
请到插件仓库进行下载安装: xmake-plugins.
IDE和编辑器插件
更多例子
Debug和Release模式:
add_rules("mode.debug", "mode.release")
target("console")
set_kind("binary")
add_files("src/*.c")
if is_plat("windows", "mingw") then
add_defines("XXX")
end
自定义脚本:
target("test")
set_kind("static")
add_files("src/*.cpp")
after_build(function (target)
print("build %s ok!", target:targetfile())
end)
使用扩展模块:
target("test")
set_kind("shared")
add_files("src/*.c")
on_load(function (target)
import("lib.detect.find_package")
target:add(find_package("zlib"))
end)
项目例子
一些使用xmake的项目:
演示视频
联系方式
- 邮箱:waruqi@gmail.com
- 主页:tboox.org
- 社区:Reddit论坛
- 聊天:Telegram群组, Gitter聊天室
- 源码:Github, Gitee
- QQ群:343118190
- 微信公众号:tboox-os
MFC编程技巧与范例详解
曾凡锋、苗雨 / 清华大学出版社 / 2008-10 / 45.00元
本书集作者多年教学与软件开发经验,通过不同类型的实例详解向读者解读了如何使用MFC进行软件开发,并按实例的复杂度进行分级介绍,以满足不同层次读者的切实需要。. 本书共55个完整实例,均选自作者多年工程应用开发中的案例;内容共分14章,分别为MFC的基本概念、文档和视图、对话框、按钮控件、编辑控件、组合框控件、列表框控件、列表视图控件、树状视图控件、图像、多媒体、GDI与GDI+、网络编程、I......一起来看看 《MFC编程技巧与范例详解》 这本书的介绍吧!
