+
DevOps研发效能
媒体矩阵
开源中国APP
授权协议 Apache License 2.0
操作系统 跨平台
软件类型 开源软件
所属分类 开发工具项目构建
开源组织
地区 国产
投 递 者 ruki
适用人群 未知
收录时间 2015-07-16

软件简介

xmake 是一个基于 Lua 的轻量级跨平台构建工具,使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中在实际的项目开发上。

虽然,简单易用是 xmake 的一大特色,但 xmake 的功能也是非常强大的,既能够像 Make/Ninja 那样可以直接编译项目,也可以像 CMake/Meson 那样生成工程文件,还有内置的包管理系统来帮助用户解决 C/C++依赖库的集成使用问题。

目前,xmake主要用于C/C++项目的构建,但是同时也支持其他native语言的构建,可以实现跟C/C++进行混合编译,同时编译速度也是非常的快,可以跟Ninja持平。

如果你想要了解更多,请参考:在线文档Github以及Gitee

课程

xmake 官方也推出了一些入门课程,带你一步步快速上手 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

简单的工程描述

包依赖描述

官方的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

跟ninja一样快的构建速度

测试工程: xmake-core

多任务并行编译测试

构建系统 Termux (8core/-j12) 构建系统 MacOS (8core/-j12)
xmake 24.890s xmake 12.264s
ninja 25.682s ninja 11.327s
cmake(gen+make) 5.416s+28.473s cmake(gen+make) 1.203s+14.030s
cmake(gen+ninja) 4.458s+24.842s cmake(gen+ninja) 0.988s+11.644s

单任务编译测试

构建系统 Termux (-j1) 构建系统 MacOS (-j1)
xmake 1m57.707s xmake 39.937s
ninja 1m52.845s ninja 38.995s
cmake(gen+make) 5.416s+2m10.539s cmake(gen+make) 1.203s+41.737s
cmake(gen+ninja) 4.458s+1m54.868s cmake(gen+ninja) 0.988s+38.022s

包依赖管理

下载和编译

架构和流程

支持的包管理仓库

  • 官方自建仓库 xmake-repo (tbox >1.6.1)
  • 官方包管理器 Xrepo
  • 用户自建仓库
  • Conan (conan::openssl/1.1.1g)
  • Vcpkg (vcpkg:ffmpeg)
  • Homebrew/Linuxbrew (brew::pcre2/libpcre2-8)
  • Pacman on archlinux/msys2 (pacman::libcurl)
  • Clib (clib::clibs/bytes@0.0.4)
  • Dub (dub::log 0.4.3)

支持平台

  • Windows (x86, x64)
  • macOS (i386, x86_64, arm64)
  • Linux (i386, x86_64, cross-toolchains ..)
  • *BSD (i386, x86_64)
  • Android (x86, x86_64, armeabi, armeabi-v7a, arm64-v8a)
  • iOS (armv7, armv7s, arm64, i386, x86_64)
  • WatchOS (armv7k, i386)
  • MSYS (i386, x86_64)
  • MinGW (i386, x86_64, arm, arm64)
  • Cygwin (i386, x86_64)
  • Wasm (wasm32)
  • Cross (cross-toolchains ..)

支持工具链

$ xmake show -l toolchains
xcode         Xcode IDE
vs            VisualStudio IDE
yasm          The Yasm Modular Assembler
clang         A C language family frontend for LLVM
go            Go Programming Language Compiler
dlang         D Programming Language Compiler
gfortran      GNU Fortran Programming Language Compiler
zig           Zig Programming Language Compiler
sdcc          Small Device C Compiler
cuda          CUDA Toolkit
ndk           Android NDK
rust          Rust Programming Language Compiler
llvm          A collection of modular and reusable compiler and toolchain technologies
cross         Common cross compilation toolchain
nasm          NASM Assembler
gcc           GNU Compiler Collection
mingw         Minimalist GNU for Windows
gnu-rm        GNU Arm Embedded Toolchain
envs          Environment variables toolchain
fasm          Flat Assembler
tinyc         Tiny C Compiler
emcc          A toolchain for compiling to asm.js and WebAssembly
icc           Intel C/C++ Compiler
ifort         Intel Fortran Compiler
musl          The musl-based cross-compilation toolchains

支持语言

  • C/C++
  • Objc/Objc++
  • Swift
  • Assembly
  • Golang
  • Rust
  • Dlang
  • Fortran
  • Cuda
  • Zig (Experimental)

支持特性

  • 简洁的配置语法
  • 直接构建支持,不依赖任何第三方后端 make 工具
  • 跨平台支持,不同平台可方便快速地切换
  • 交叉编译支持,智能分析交叉工具链信息
  • 多任务并行编译支持
  • C++20 Module-TS 支持
  • 支持跨平台的 C/C++ 依赖包快速集成
  • 自建分布式包仓库,第三方包仓库支持
  • 多语言混合编译支持
  • 灵活的 lua 脚本,丰富的扩展模块,可实现高度定制化
  • 丰富的插件支持,内置 vs/cmake/makefile/compile_commands 等生成插件
  • REPL 交互式执行支持
  • 增量编译支持,头文件依赖自动分析
  • 工具链的快速切换、定制化支持

工程类型

  • 静态库程序
  • 动态库类型
  • 控制台程序
  • Cuda程序
  • Qt应用程序
  • WDK驱动程序
  • WinSDK应用程序
  • MFC应用程序
  • iOS/MacOS应用程序
  • Framework和Bundle程序(iOS/MacOS)

更多例子

Debug 和 Release模式

add_rules("mode.debug", "mode.release")

target("console")
    set_kind("binary")
    add_files("src/*.c")
    if is_mode("debug") then
        add_defines("DEBUG")
    end

自定义脚本

target("test")
    set_kind("binary")
    add_files("src/*.c")
    after_build(function (target)
        print("hello: %s", target:name())
        os.exec("echo %s", target:targetfile())
    end)

依赖包自动集成

下载和使用在 xmake-repo 和第三方包仓库的依赖包:

add_requires("tbox >1.6.1", "libuv master", "vcpkg::ffmpeg", "brew::pcre2/libpcre2-8")
add_requires("conan::openssl/1.1.1g", {alias = "openssl", optional = true, debug = true})
target("test")
    set_kind("binary")
    add_files("src/*.c")
    add_packages("tbox", "libuv", "vcpkg::ffmpeg", "brew::pcre2/libpcre2-8", "openssl")

另外,我们也可以使用 xrepo 命令来快速安装依赖包。

Qt QuickApp 应用程序

target("test")
    add_rules("qt.quickapp")
    add_files("src/*.cpp")
    add_files("src/qml.qrc")

Cuda 程序

target("test")
    set_kind("binary")
    add_files("src/*.cu")
    add_cugencodes("native")
    add_cugencodes("compute_35")

WDK/UMDF 驱动程序

target("echo")
    add_rules("wdk.driver", "wdk.env.umdf")
    add_files("driver/*.c")
    add_files("driver/*.inx")
    add_includedirs("exe")

target("app")
    add_rules("wdk.binary", "wdk.env.umdf")
    add_files("exe/*.cpp")

更多WDK驱动程序例子(umdf/kmdf/wdm),见:WDK工程例子

iOS/MacOS 应用程序

target("test")
    add_rules("xcode.application")
    add_files("src/*.m", "src/**.storyboard", "src/*.xcassets")
    add_files("src/Info.plist")

Framework 和 Bundle 程序(iOS/MacOS)

target("test")
    add_rules("xcode.framework") -- 或者 xcode.bundle
    add_files("src/*.m")
    add_files("src/Info.plist")

OpenMP 程序

add_requires("libomp", {optional = true})
target("loop")
    set_kind("binary")
    add_files("src/*.cpp")
    add_rules("c++.openmp")
    add_packages("libomp")

插件

生成IDE工程文件插件(makefile, vs2002 - vs2019, ...)

$ xmake project -k vsxmake -m "debug;release" # 新版vs工程生成插件(推荐)
$ xmake project -k vs -m "debug;release"
$ xmake project -k cmake
$ xmake project -k ninja
$ xmake project -k compile_commands

加载自定义lua脚本插件

$ xmake l ./test.lua
$ xmake l -c "print('hello xmake!')"
$ xmake l lib.detect.find_tool gcc
$ xmake l
> print("hello xmake!")
> {1, 2, 3}
< {
    1,
    2,
    3
  }

更多内置插件见相关文档:内置插件文档

其他扩展插件,请到插件仓库进行下载安装: xmake-plugins.

IDE和编辑器插件

XMake Gradle插件 (JNI)

我们也可以在Gradle中使用xmake-gradle插件来集成编译JNI库

plugins {
  id 'org.tboox.gradle-xmake-plugin' version '1.0.6'
}

android {
    externalNativeBuild {
        xmake {
            path "jni/xmake.lua"
        }
    }
}

gradle-xmake-plugin插件被应用生效后,xmakeBuild任务会自动注入到现有的assemble任务中去,自动执行jni库编译和集成。

$ ./gradlew app:assembleDebug
> Task :nativelib:xmakeConfigureForArm64
> Task :nativelib:xmakeBuildForArm64
>> xmake build
[ 50%]: ccache compiling.debug nativelib.cc
[ 75%]: linking.debug libnativelib.so
[100%]: build ok!
>> install artifacts to /Users/ruki/projects/personal/xmake-gradle/nativelib/libs/arm64-v8a
> Task :nativelib:xmakeConfigureForArmv7
> Task :nativelib:xmakeBuildForArmv7
>> xmake build
[ 50%]: ccache compiling.debug nativelib.cc
[ 75%]: linking.debug libnativelib.so
[100%]: build ok!
>> install artifacts to /Users/ruki/projects/personal/xmake-gradle/nativelib/libs/armeabi-v7a
> Task :nativelib:preBuild
> Task :nativelib:assemble
> Task :app:assembleDebug
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

BOM

器件型号 器件厂商 更多信息
{{o.mpn}} {{o.mfr}} 查看

评论

点击加入讨论🔥(12) 发布并加入讨论🔥
发表了资讯
02/10 15:34

Xmake v3.0.7 发布,包方案支持,Wasm 浏览器运行与 UTF-8 模块

在此版本中,我们新增了包方案 (Package Schemes) 支持,提供了更加灵活的包安装和回退机制。同时,我们改进了 Nix 包管理器支持,优化了 Verilator 构建,并新增了对 Qt SDK 动态 mkspec 的选择支持。 此外,我们还支持了在浏览器中运行 Wasm 程序,支持从标准输入 (stdin) 读取脚本运行,并引入了 cli.iconv, utf8 和 os.access 等多个新模块和函数。 新特性介绍 包方案 (Package Schemes) scheme 特性主要用于提供多种安装方...

0
0
发表了资讯
01/05 10:29

Xmake v3.0.6 发布,原生 Android 应用、Flang、CUDA 13、Qt 打包

新特性介绍 Android 原生应用构建支持 新版本对 Android 原生应用的构建支持进行了进一步改进。我们现在可以在 android.native_app 规则中配置更多参数,包括 android_sdk_version, android_manifest, android_res, keystore 等。 此外,对于需要自定义入口和事件循环的场景(例如游戏引擎集成),我们支持通过设置 native_app_glue = false 来禁用默认的 android_native_app_glue 库。 add_rules("mode.debug", "mode.releas...

0
0
发表了资讯
2025/11/26 11:22

Xmake v3.0.5 发布:多行进度输出、XML 模块、异步 OS API 和 Swift 互操作

新特性介绍 新版本中,我们引入了多个重要特性,显著提升了开发体验。重点包括多行进度输出(支持主题配置,提供更好的构建可见性)、全面的XML 模块(用于解析和编码 XML 数据)、异步 OS API(提升 I/O 性能)以及Swift 互操作支持(实现 Swift 与 C++/Objective-C 代码的无缝集成)。同时,我们也对工具链配置、TTY 处理进行了重大改进,并进行了各种性能优化。 下载地址: GitHub Releases * 源码仓库 支持多行刷新进度输出...

0
0
发表了资讯
2025/09/05 14:55

Xmake v3.0.2 发布,C++ Modules 改进和 Native thread 支持

新特性 #6755: 添加原生线程支持 #6641: 为 target/config 添加 pkgenvs #6644: 支持使用 clang 编译 .def 文件 #6695: 为 inf2cat 添加 /uselocaltime 参数 #6709: 支持 wasm64 架构 #6737: 为 cython 规则添加 python 存根文件扩展 改进 #6651: 改进依赖文件 #6656: 使构建工具支持传入 opt.targets #6688: 改进安装目标 #6692: 改进 protobuf 测试 #6714: 改进 C++ 模块测试 #6719: 改进 comax 配置 #6725: 改进 target:ext...

0
0
发表了资讯
2025/02/05 13:49

Xmake v2.9.8 发布,新增 IAR ARM、TI-CGT 等编译器支持

新特性 #5994: 分析进程执行性能 #5995: 为 vs generator 添加 profile 支持 #5949: 添加 nodejs.module 规则 #3380: 添加命名空间支持 #5945: 检测 pkgconfig/cmake 导入文件 #6054: 为 linux 添加 xmake bundle 包 #6071: 改进 git 包下载,支持仅仅 clone 指定子目录 #5163: 支持 TI-CGT C2000/C6000 编译器 #5344: 支持 IAR ARM C/C++ 编译器 #5554: 添加自定义未知工具链支持 改进 #6056: 添加 CI 去构建发布 windows arm6...

0
0
发表了资讯
2024/09/14 11:36

xmake v2.9.5 发布,支持 bundle 打包

新特性 #5462: 添加 xmake l cli.bisect #5488: 支持使用 cosmocc 去构建 xmake 自身二进制 #5491: 支持提供内嵌 lua 文件的单个 xmake 二进制文件 #5580: 添加 @builtin/xrepo 辅助模块,为 xrepo env shell 实现快速设置环境变量 改进 #5507: 改进 git clone 下载速度 #5536: 在 swig 模式中添加 jar 生成支持 #5573: 改进 vsxmake generator 性能 #5601: 改进 utils.symbols.export_all 规则去过滤源文件路径 Bugs 修复 #475...

1
0
发表了资讯
2024/05/24 11:33

Xmake v2.9.2 发布,各种细节和稳定性改进

新特性 #5005: 显示所有 API #5003: 添加 build.fence 策略 #5060: 支持 Verilator 静态库目标构建 #5074: 添加 xrepo download 命令去快速下载包源码 #5086: 添加包检测支持 #5103: 添加 qt ts 构建支持 #5104: 改进 find_program,在 windows 上调用 where 改进查找 改进 #5077: 当构建 x86 目标时,使用 x64 的 msvc 编译工具 #5109: 改进 add_rpathdirs 支持 runpath/rpath 切换 #5132: 改进 ifort/icc/icx 在 windows 上的...

1
0
发表了资讯
2024/04/23 10:02

Xmake v2.9.1 发布,新增 native lua 模块和鸿蒙系统支持

Xmake 是一个基于 Lua 的轻量级跨平台构建工具。 它非常的轻量,没有任何依赖,因为它内置了 Lua 运行时。 它使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中在实际的项目开发上。 我们能够使用它像 Make/Ninja 那样可以直接编译项目,也可以像 CMake/Meson 那样生成工程文件,另外它还有内置的包管理系统来帮助用户解决...

0
1
发表了资讯
2024/03/22 10:27

Xmake 2.8.9 发布,一些稳定性改进

新特性 #4843: 添加 check_bigendian 接口实现大小端探测 改进 #4798: 改进 wasi sdk 检测 #4772: 改进 tools.cmake 去兼容支持 vs2022 preview (v144) #4813: 添加 gb2312 编码 #4864: 改进抽取符号,支持 gdb 断点调试 #4831: 改进 target:fileconfig() 支持 headerfiles #4846: 改进进度显示,解决顺序错乱问题 Bugs 修复 修复 select_script 的脚本模式匹配 #4763: 修复 {force = true} #4807: 修复 nimble::find_package #...

2
1
发表了资讯
2024/02/26 09:47

Xmake v2.8.7 发布,新增 cosmocc 工具链支持,一次编译到处运行

Xmake 是一个基于 Lua 的轻量级跨平台构建工具。 它非常的轻量,没有任何依赖,因为它内置了 Lua 运行时。 它使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中在实际的项目开发上。 我们能够使用它像 Make/Ninja 那样可以直接编译项目,也可以像 CMake/Meson 那样生成工程文件,另外它还有内置的包管理系统来帮助用户解决...

0
0
发表了资讯
2023/12/26 11:29

Xmake v2.8.6 发布,新的打包插件:XPack

Xmake 是一个基于 Lua 的轻量级跨平台构建工具。 它非常的轻量,没有任何依赖,因为它内置了 Lua 运行时。 它使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中在实际的项目开发上。 我们能够使用它像 Make/Ninja 那样可以直接编译项目,也可以像 CMake/Meson 那样生成工程文件,另外它还有内置的包管理系统来帮助用户解决...

3
1
发表了资讯
2023/11/08 09:00

Xmake v2.8.5 发布,支持链接排序和单元测试

Xmake 是一个基于 Lua 的轻量级跨平台构建工具。 它非常的轻量,没有任何依赖,因为它内置了 Lua 运行时。 它使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中在实际的项目开发上。 我们能够使用它像 Make/Ninja 那样可以直接编译项目,也可以像 CMake/Meson 那样生成工程文件,另外它还有内置的包管理系统来帮助用户解决...

0
1
发表了资讯
2023/09/28 10:19

Xmake v2.8.3 发布,改进 Wasm 并支持 Xmake 源码调试

Xmake 是一个基于 Lua 的轻量级跨平台构建工具。 它非常的轻量,没有任何依赖,因为它内置了 Lua 运行时。 它使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中在实际的项目开发上。 我们能够使用它像 Make/Ninja 那样可以直接编译项目,也可以像 CMake/Meson 那样生成工程文件,另外它还有内置的包管理系统来帮助用户解决...

0
1
发表了资讯
2023/08/23 09:02

Xmake v2.8.2 发布,官方包仓库数量突破 1k

Xmake 是一个基于 Lua 的轻量级跨平台构建工具。 它非常的轻量,没有任何依赖,因为它内置了 Lua 运行时。 它使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中在实际的项目开发上。 我们能够使用它像 Make/Ninja 那样可以直接编译项目,也可以像 CMake/Meson 那样生成工程文件,另外它还有内置的包管理系统来帮助用户解决...

1
3
发表了资讯
2023/07/11 12:54

Xmake v2.8.1 发布,大量细节特性改进

Xmake 是一个基于 Lua 的轻量级跨平台构建工具。 它非常的轻量,没有任何依赖,因为它内置了 Lua 运行时。 它使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中在实际的项目开发上。 我们能够使用它像 Make/Ninja 那样可以直接编译项目,也可以像 CMake/Meson 那样生成工程文件,另外它还有内置的包管理系统来帮助用户解决...

1
1
发表了资讯
2023/05/16 16:01

Xmake 2.7.9 发布,新增对 conan 2.0 支持

新特性 #3613: 添加 wasm.preloadfiles 扩展配置 #3703: 支持 conan >=2.0.5 改进 #3669: 改进 cmake 生成器支持特定工具的 cxflags #3679: 改进 xrepo clean #3662: 改进 cmake/make 生成器去更好的支持 lex/yacc 工程 #3697: 改进 trybuild/cmake #3730: 改进 c++modules 包安装,解决不同目录同名文件分发冲突问题 Bugs 修复 #3596: 修复 check_cxxfuncs 和 check_cxxsnippets #3603: 修复 xmake update 的无效 url #3614: 修...

0
0
发表了资讯
2023/04/06 11:41

Xmake v2.7.8 发布,改进包虚拟环境和构建速度

Xmake 是一个基于 Lua 的轻量级跨平台构建工具。 它非常的轻量,没有任何依赖,因为它内置了 Lua 运行时。 它使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中在实际的项目开发上。 我们能够使用它像 Make/Ninja 那样可以直接编译项目,也可以像 CMake/Meson 那样生成工程文件,另外它还有内置的包管理系统来帮助用户解决...

0
3
发表了资讯
2023/02/24 10:07

Xmake v2.7.7 发布,支持 Haiku,改进 API 检测和 C++ Modules支持

Xmake 是一个基于 Lua 的轻量级跨平台构建工具。 它非常的轻量,没有任何依赖,因为它内置了 Lua 运行时。 它使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中在实际的项目开发上。 我们能够使用它像 Make/Ninja 那样可以直接编译项目,也可以像 CMake/Meson 那样生成工程文件,另外它还有内置的包管理系统来帮助用户解决...

1
3
发表了资讯
2023/01/28 08:38

Xmake v2.7.6 发布,新增 Verilog 和 C++ Modules 分发支持

Xmake 是一个基于 Lua 的轻量级跨平台构建工具。 它非常的轻量,没有任何依赖,因为它内置了 Lua 运行时。 它使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中在实际的项目开发上。 我们能够使用它像 Make/Ninja 那样可以直接编译项目,也可以像 CMake/Meson 那样生成工程文件,另外它还有内置的包管理系统来帮助用户解决...

0
1
发表了资讯
2022/12/25 12:43

Xmake 2.7.4 发布,更好的 C++ Modules 支持

xmake 是一个基于 Lua 的轻量级跨平台构建工具,使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中在实际的项目开发上。 虽然,简单易用是 xmake 的一大特色,但 xmake 的功能也是非常强大的,既能够像 Make/Ninja 那样可以直接编译项目,也可以像 CMake/Meson 那样生成工程文件,还有内置的包管理系统来帮助用户解决 C/C+...

3
2
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
暂无内容
12 评论
285 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部