XMake 是什么

XMake 是一个根据 Lua 的 现代化 C/C++ 构建体系。

它的语法简练易上手,对新手友爱,即便彻底不会 lua 也能够快速入门,并且彻底无任何依托,轻量,跨途径。

一起,它也是一个自满意的构建体系,具有强健的包处理体系,快速的构建引擎shellfish

比较 Ninja/Scons/Make 作为 Build backend,CMake/Mesios8备忘录oios14n 作为 Prjava面试题oject Generator,那么 XMake 便是这两者外加一个包处理。

xmake = Build bffmpeg.dll丢掉怎样办ackend + Project Generator + Package Manager

因而,只shell脚本编程100例需求设备一个不到iOS 3M 的 XMake 设备包,ffmpeg指令详解你就能够不必再设备其他各种东西,乃至连 make 都不需求设备,也不gradle下载慢解决方法需求设备 Python、Java 等重量级的iOS运行时环境,就能够初步您的 C/C++ 开发之旅。

gradle打包许,有人gradle装备会说gradle装备,编译器总需求设备的吧。这也不是有必要的,由于 XMake 的包处理也支撑主动长途拉取需求的各种编译东西链,比方:llvm, Mingw, Anshellydroid NDK 或许穿插编译东西链。

为什shelly-lan么要做 XMake

每当在 Reddit 社区跟他人评论起 XMake,咱们总是会拿下面这张图来吐槽。

C/C++ 构建体系,我用 xmake

虽然有些无奈,也被吐槽的有些麻木了,不过我仍是想说明下,做 XMshell脚本ake 的初衷,并不是为了分裂 C/C++ 生态,相反,XMake 尽可能地复用了现有生态。

一起也让用户在开发 C/C++ 项目的时分,具有与其他言语相同的杰出体会,比方:Rust/Cargoios退款,Nodejs/Npm, Dlang/Dub,不再为处处找第三包,研讨怎样移植编译而折腾。

因而,假定您还不了解 XMake,请不要过早下结论,能够shell英语怎样读先测验运用下,或许花点时刻看完下文的详细介绍。

XMake 的特性和优势

常常有人问我 XMake 有什么特别之处,gradle打包比较现有 CMake、Meson 此类构建东西有什么优势,我gradle翻译为什么要运Java用 XMake 而不是 CMake?

先说特征shelly和优势,XMake 有以下几ios模拟器点:

  • 简练易学的装备语法,非 DSL
  • 强健的包处理,支撑语义版别,东西链处理
  • 足够轻量,无依托
  • 极速编译,构建速度和 Ninja 相同快
  • 简略便利的多途径、东西链切换
  • 完善的插件体系
  • 活络的构建规则

至于 CMake,毕竟已成事实上的标准,生态完善,功用强健。

我从没想过让 XMake 去代替它,也代替不了,彻底不是一个量级的,可是 CMake 也有许多java开发为人所诟病的短板,比方:语法杂乱难明,包处理支撑不完善等等。

因而运用 XMake 能够作为一种补偿,关于那些想要简略快速入门 C/C++ 开发的新手,或许想要愈加便java言语当易用的包处理,或许想暂时快速写一些低矮的测试项目。

XMake 都能够帮他们行进开发功率,让其FFmpeg愈加重视 C/C++ 项目自身,而不是花更多的时刻在构建东西和开发环境上。

下面,我来详细介绍 XMakios14e 的这些首要特性。

语法简练易上手

CMake 自己规划一门 DSL 言语用来做项目装备,这对用户来讲行进了学习本钱,并且它的语法FFmpeg可读性不是很直观,很容易写出过于杂乱的装备脚本,也行进了维护本钱。

而 XMake 复用现有出名的 Lua 言语作为基础,并且其上供给了愈加简略直接的装备语法。

Lua 自身便是一门简略轻量的胶水言语,关键字和内置类型就那么几种,看个一篇文章,就能根本入门了,并且比较 DSL,能够从网上更便利的获取到很多相ios模拟器关材料和教程。

基础语法

不过,ffmpeg指令详解仍是有人ffmpeg安卓版别下载会吐槽:那不是还得学习 Lua 么?

其实也不必,XMake 采用了 描绘域脚本域 分离的方法,使得初学者用户在 80% 的情况gradle装置装备下,只需求在描绘域以更简略直接的方法来装备,彻底能够不把它当成 Lua 脚本,例ios模拟器如:

target("test")
set_kind("binary")
add_files("src/*.java言语c")
add_files(shell脚本"test/*.c", "example/**.cpp")

假定由于gradle翻译,看着有括号,仍是像脚本言语的函数调用,那咱们也能够这么写(是否带括号看个人喜好,不过我个人仍是建议运用上面的方法)

target "tesshell脚本编程100例t"
set_kind "binary"
add_fjava初学iles "src/*.c"
add_files "test/*.c"
add_files "example/**.cpp"

咱们只需求知道常用装备接口,即便不彻底不会 Lua 也能快速配java模拟器备了。

咱们能够比照下 CMake 的装备:

add_executable(test "")
file(GLOB SRC_FILES "src/*.c")
file(GLOB TEST_FILES "test/*.c")
file(GLOB_RECURSE EXAshellyMPLE_FILES "example/*.cpp")
tgradle下载arget_sources(test PRIVATEios体系
${SRC_FILES}
${TEST_FILES}
${EXAMPLE_FILES}
)

ios14桌面布局图片个更直观可读,一望而知。

条件装备

假定,你现已初步了解了一些 Lua 等基础知识,比方 if then 等条件判别,那么能够进一步做一些条件装备。

target("test")
setios退款_kind("binary")
add_files("src/main.c")
if is_plat("macosx", "linux"ffmpeg装置) then
add_defines("TEST1", "TEST2")
end
if is_plat("Javawindows") and is_mode("release") then
add_cxflags("-Ox", "-fp:fast")
enios14.4.1更新了什么d

持续比照下 CMake 版别装备:

add_executable(test ""ffmpeg教程)
if (APPLE OR LINUX)
target_compile_definitions(test PRIVATE TEST1 TEST2)
endif()
if (WIios退款N32)
target_compile_options(tshell脚本根本指令est PRIVAios模拟器TE $<$<CONFIG:Release>:-Ox -fp:fastgradle装置装备>)
endif()
target_sources(test PRIVATE
src/maiios下载n.c
)

杂乱脚本

假定你现已晋升为 Xios14Make 的高端玩家,Lua 语法了然于胸,想要愈加活络的定制化装备需求,并且描绘域的几行简略装备现已满意不了你的需求。

那么 XMake 也供给了愈加无缺的 Lua 脚本定制化才干,你能够写任何杂乱ios14的脚本。

比方在构建之前,对一切源文件java言语进行一些预处理,在shell是什么意思中文构建之后,实施外部 gradle 指令进行后期打包,乃至咱们还能够重写内部链接规则,完毕深度定制编译,咱们能够经过import 接口,导入内置的 linker 扩展模块,完毕杂乱活络的链接进程。

target("test")
seios下载t_kind("binary")
add_files("src/*.c")
before_build_file(function (target, sourcefile)
io.replace(sourceshell脚本file, "#define HAVE_XXX 1", "#define HAVE_XXX 0"java环境变量装备)
end)
on_link(function (target)
import("core.tool.linker")
linker.link("binary"ios14.4.1更新了什么, "cc", target:objectfiles(), tarshell脚本get:targetfile(), {target = target})
end)
after_build(function (target)
if is_plat("android" then
os.cd("android/app")
os.exec("./ios模拟器gradlew app:assembleDebug")
end
end)

假定换成 CMake,也能够 add_custom_command 里面完毕,不过里面如同只能简略的实ffmpeg指令行一些批处理指令,无法做各种杂乱的逻辑判别java面试题,模块加载,自定义装备脚本等等。

当然,运用shellfish cmake 肯定也能完毕上面描绘的功用,但肯定不会那么简略。

假定有了解 cmake 的人,也能够测ios8备忘录验协助完毕下面的装备:

add_executable(test "")
file(GLOB SRC_FILES "src/*.c")
add_ios14custom_command(TARGET test PRE_BUILD
-- TODO
COMMAND echo hello
)
add_custom_command(Tgradle装置装备ARGET test POST_BUILD
COMMAND cd androishell是什么意思中文d/app
COMMAND ./gradlew app:assembleDebug
)
-- How can we override link stage?
target_sources(test PRIVATE
${SRC_FILES}
)

强健的包处理

众所周知,做 C/C++ 相关项目开发,最头大的便是各种依托包的集成,由于没有像 Rust/Cargo 那样完善的包处理体系。

因而,咱们每次想运用一个第三方库,gradle都需求各种找,研讨各种途径的移植编译ios14桌面布局图片,还常常遇到各种编译问题,极大耽误了开发者时刻,无法集中精力去投入到实际的项目开发中去。

十分ios体系困难其时途径搞定了,换到其他途径,有需求从头折腾一遍依托包,为了处理这个问题,呈现了一些第三方的包处理器,比方 vcpkg/cogradle和maven的差异nan/conda等等,但有ffmpeg教程些不支撑语义版别,有些支撑的途径有限,但不论怎样,总算是为处理 C/C++ 库的依托处理迈进了很大一步。

可是,光有包处理器,C/C++ 项目中运用它们仍是比较费事,由于还需求对应构建东西能够很好的对其进行集成支撑才行。

CMake 和 Vcpkg

咱们先来看下 CMake 和 Vcpkg 的集成支撑:

cmake_minimum_required(VERjava工作培训班Sios下载ION 3.0)
project(test)
find_gradle装备package(unofficial-sqlishell是什么意思中文te3 CONFIG REQUIREios下载D)
add_executable(main main.cpp)
target_link_libraries(main PRIVATios是什么意思E unofficial::sFFmpegqlite3::sqlite3)

缺陷:

  • 还需求额定装备 -DCMAKE_TOOLCHAIN_FILE=<vcpkgShell_dir>/scripts/buildsystems/vcpkg.cmake"
  • 不支撑主动gradle装备设备依托包,还需求用户手动实施 vcpkg install xxx 指令设备
  • vcpkg 的语ios模拟器义版别选择不支撑 (听说新版别初步支撑了)

CMake 和 Conan

```cmake
cmake_minimum_required(VERSIOios模拟器N 2.8.12)
project(Hello)
add_definitions("-std=c++11")
igradle下载nclude(${CMAKE_BINARY_DIR}/conanbuildiios体系nfo.cmake)
conan_basic_setup()ffmpeg指令
add_executable(hello hello.cpp)
target_link_libraries(hello gtest)

conanfile.txt

[requires]
gtest/1.10.0
[genjava工作培训班erators]
cmake

缺陷:

  • 相同,仍是需求额定调用 conan install .. 来设备包
  • 还需求额定装备一个 conanfile.ffmpeg兼并视频txt 文件去描绘包依托规则

Meson 和 Vcpkg

我没找到怎样在 Meson 中去运用 vcpkg 包,只是找到一篇相关的 Issue #3500 评论。ffmpeg指令

Meson 和 Conan

Meson 如同还没有对ffmpeg安卓版别下载 Conan 进行支撑,可是 Conan 官方文档上有处理方案,对齐进行支撑,可是很杂乱,我是没看会,咱们能够自行研讨:docs.conan.io/en/latest/r…

XMake 和 Vcpkg

前面讲了这么多ios14.4.1更新了什么,其他构建东西和包处理的集成,个人感觉用起来很费事,并且不同的包处理器,集成方法不同很大,shelly用户想要快速从 Vcpkg 切换到 Conan 包,改动量非常大。

接下来,咱们来看看 XMake 中集成运用 Vcpkg 供给的包:

add_reqjava言语uires("vcpkg::zlib", {alias = "zlib"})
target("test")
set_kind("binary")
add_files("src/*.c")
add_packages("zlib")

咱们只需求经过 add_shellfishregradle打包quirshell脚本根本指令es 装备gradle和maven的差异上对应的包名ios最好玩的手游,以及 vcpkg:: 包命名空间,就能直接集成运用 vcpkg 供shell英语怎样读应的 zlib 包。

然后,咱们只需求实施 xmake 指令,既可完毕整个编译进程,包含 zlib 包的shell脚本根本指令主动设备,无需额定手动实Shellvcpkg install zlib

$ xmake
note: try installing these packages (pass -y to skip confirmgradle下载)Java?
-> vcpkg::zlib
please input: y (y/n)
=&ggradle和maven的差异t; install vcpkg::zlib .. offmpeg.dll丢掉怎样办k
[ 25%]: compiling.release srcshellfishmain.cpp
[ 50%]: linking.release test
[java开发100%]: build ok!

XMake 和 Conan

接下来是集成 Conan 的包,彻底相同的方法,只是实施换个包处理器ffmpeg教程姓名。

adffmpeg兼并视频d_ios模拟器requires("conan::zlib", {alias = "zlib"})
target("test")
set_kind("binarygradle装置装备")
add_files("src/*.c")
add_packages("zlib")

XMake 相同会主动设备 conan 中的 zlib 包,然后主动集成编译。

XMake 自建包处理

XMake 跟 CMake 还有其他构建体系,最大的不同点,也便是最大的优势之一,便是它有彻底自建的包处理体系,咱们彻底能够不依托 vcpkg/conan,也能够快ffmpeg羞耻柱事情速集成依托包,比方:

add_requires("zlib 1.2.x", "tbox >= 1.6.0")
target("test")
set_kind("binary")
add_files("src/*.c")
add_packages("zlib", "tbox")

并且,它还支撑无缺的语义版别选择,多途径的包集成,穿插编译东西链的包集成,乃至编译东西链包的主动拉取运用。

不仅如此,咱们开能够对定制化装备对自建包的依托,例如:

运用调式版别依托包

咱们能够运用 debug 版别库,完毕对依托库的断点调试。

add_requires("zlib", {debug = true})
设置 msvc 运行时库
add_requires("zlib", {configs = {vs_runtime = "MD"}})
运用动态库

默许集成的是静态库,咱们也能够切换到动态库。

add_requires("zlib", {configs = {shared = true}})
语义版别支撑ios模拟器

XMake 的自建包集成支撑无缺的ios模拟器ios是什么意思别语义标准。

add_requires("zlib 1.2.x")ios体系
add_requires("zlib >=1.2.10")
add_requires("zlib ~1.2.0")
阻止运用体系库

默许情况下,假定版别匹配,XMake 会优先查找运用体系上用户现已设备的库,当然咱们也能够强制阻止查java言语找运用体系库,只是从自建包库房中下载设备包。

add_reqshell脚本根本指令uires("zlib", {system = true})
可选依托ffmpeg是什么意思

假定依托包集成失利,XMake 会主动报错,连续编译,提示用户:zlib nshell英语怎样读ot found,可是咱们也能够设置为可选包集成,这样的话,即便库毕竟没设备成功,也不影响项目的java言语编译,只是只是越过这个依托。

add_requires("zlib", {optional = true}FFmpeg)
包的定制化装备

比方ffmpeg安卓版别下载ios模拟器集成运用敞开了 context/coroutine 模块装备的 boosios14t 库。

add_requires("boostFFmpeg", {configs = {context = true, coroutine = true}})

支撑的包处理库房

XMake 除了支shell脚本根本指令撑 vcpkg/conan 还有自建库房的包集成支撑,还支撑其他的包处理库房,例如:Conda/Homebrew/Apt/Pacman/Clib/Dub 等等,并且集成方法彻底一起。

ios下载户可与快速切ffmpeg.dll丢掉怎样办换运用其他的库房包,而不需求花太多java初学ffmpeg羞耻柱事情间去研讨怎样集成它们。

因而,XMake 并没有损坏 C/C++ 生态,而是极大的复用现有 C/C++ 生态的基础上,尽力改进用户对 C/C++ 依托包的运用体会,行进开发功率,让用户能够具有更多的时刻去重视项目自身。

  • 官方自建库房 xmake-repo (tbox >1.6.1)
  • 官方包处理器 Xrepo
  • 用户自建库房
  • Conan (conan::openssl/1.1.1g)javascript
  • Conda (conda::libpng 1.3.67)ffmpeg兼并视频
  • Vcpkg (vcpgradle教程kg:ffmpeg)
  • Homebrew/Linuxbrew (brew::pcre2/libpcre2-8)
  • Pacman on archlinux/msys2 (pashellfishcman::liShellbcurl)
  • Apt on ubuntu/debianffmpeg教程 (apt::zlib1g-deshellyv)
  • Clib (clib::clibs/bytes@0.0.4)
  • Dub (dub::log 0.4.3)

独立的Shell包处理指gradle教程令(Xrepo)

为了便利 XMake 的自建库房中的包处理,以及第三方包的处理运用,咱们也供给了独立的 Xrepo cli 指令东西,来便利的处理咱们的依托包

咱们能够运用这个东西,快速便利的完毕下面的处理操作:

  • 设备包:xrepo install zlib
  • 卸载包:xrepo remove zlib
  • 获取包信息:xrepo info zlffmpeg.dll丢掉怎样办ib
  • 获取包编译链接 flags:xrepo fetch zlib
  • 加载包虚拟 Shell 环境:xrepo env shell (这是shell是什么意思中文一个很强健的特性)

咱们能够到 Xrepo 项目主ffmpeg兼并视频页 查看更多的ffmpeg.dll丢掉怎样办介绍和运用方法。

C/C++ 构建体系,我用 xmake

轻量无依托

运用 MJavaeson/Scons 需求先设备 python/pip,运用 Bazel 需求先设备 java 等运行时环境ios是什么意思,而 XMaios14桌面布局图片ke 不需求gradle是什么额定设备任何依托库和环境,自身设备包只是2-3M,非常的轻量。

虽然 XMake 是根据 lua,可是借助于 lua 胶水言语的轻量级特性,xmake 已将其彻底内置,因而设备完 XMake 等同于具有了一个无缺的 lua vm。

有人会说,编译东西链总仍是需求的吧,也不彻底是,Windows 上,咱们供给了ffmpeg是什么意思预编译设备包,能够直接下载设备编译,ffmpeg从入门到通晓地址见:Releases

其他,Xjava怎样读Make 还支撑长途拉取编译东西链,因而即便你的体系环境,还没有设备任何编译器,也不要紧,用户彻底不必考虑怎样折腾编译环境,只gradle装备需求在 xmake.lua 里面装备上需求的东西链即可。

比方,咱们在 Windows 上运用 mingw-w64 东西链来编译 C/C++ffmpeg从入门到通晓 工程,只需求做如下装备即可。

add_requires("mingw-w64")
target("test")
set_kjava面试题ind("binary")
add_files("src/*.c")
set_toolcffmpeg教程hains("mingw@mingw-w64")

经过 set_toshell脚本olchains 装备绑定 mingw-w64 东西链包后,XMake 就会主动检测其时体系是shell编程否存在 mishell指令ngw-64,假定还没设备,它会主动下载设备,然后完毕项目编译,整个进程,用户只是只需求实施 xmake 这个指令就能完毕。

$ xmake
note: try installing these packagesffmpeg安卓版别下载 (pass -y to skip confirm)?
in xmake-repo:
-> mingw-w64 8.1.0 [vs_runtime:MT]
please input: y (y/shell英语怎样读n)
=> download https://Shelljaist.dl.sourceforge.net/projeios下载ct/mingw-wgradle64/Toolchains%20targetting%2java开发0Win64/Personal%20Builds/mingw-builds/8.1.0/threads-posix/seh/x86_64-8.1.0-release-posix-seh-rt_v6-rev0.7z .. okgradle教程
checking for mingw directory ... C:UsersrukiAppDaffmpeg从入门到通晓taLocal.xmakepackagesmmingw-w648.1.0aad6257977e0449595004d7441358fc5
[ 25%]: compilishell脚本根本指令ng.release srcmain.cpp
[ 50%]: linking.release test.exe
[100%]: build ok!

除了 minjava工作培训班gw-w64,咱们还能够装备长途拉取运用其他的东西链,乃至穿插编译东西链,例如:llvm-mingw, llvm, tinycc, muslcc, gnu-rm, zig 等等。

假定咱们还想进一步了解长途东西链的拉取集成,能够看下文档:主动拉取长途东西链。

极速并行编译

咱们都知道 Ninja 构建非常快,因而很多人都喜欢用 CMake/Meson 生成 build.ninja 后,运用 Ninja 来满意极速构建的需求。

虽然 Ninja 很快,可是咱们仍是需求先经过 meson.buios最好玩的手游ildjava工作培训班 和 CMakelist.txt 文件生成 build.ninja 才行,这个生成进程也会占用几秒乃至十几秒的时刻。

而 XMake 不只是ios是什么意思具有和 Ninja 近乎相同的构建速度,并且不需求额定再生成其他构建gradle打包文件,直接内置构建体系,任何情况下,只需求一个 xmake 指令就shell脚本能够完毕极速编译。

咱们也做过一些比照测试数据,供咱们参看:

多任务并行编译测试

构建体系ios14 Termjava模拟器ux (ffmpeg兼并视频8core/-j12) 构建体系 MacOS (8core/-j12)
xmake 24.890s xmake 12.264sios14.4.1更新了什么
ngradle发音inja 25.682shellfishs 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+1gradle装备1.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 cmgradle装备ake(gejava环境变量装备n+ninja) 0.988s+38.022s

傻瓜式多途径编译

XMake 的其他一gradle下载个特征,便是高效简略的多途径编译,不论你java模拟器是编译 windows/linux/macOS 下的程序,仍是编译 iphoneos/android 又或许是穿插编译。

编译的装备方法迥ffmpeg羞耻柱事情然不同,不必让用户去这折腾研讨各个途径下怎样去编译。

C/C++ 构建体系,我用 xmake

编译本机 Windows/Linux/MacOS 程序

其时本机程序编译,咱们只是只需求实施:shell是什么意思中文

$ xmake

比照 CMake

$ mshell英语怎样读kdir builshell是什么意思中文d
$ cd bshell脚本uild
$ cmake --build .shell脚本编程100例.

编译 Android 程序

$ xmake f -p android --ndk=~/android-ndk-r21e
$ xmake

比照 CMake

$ mkdir build
$ cd build
$ cmake -DCMAKE_TOOLCHAIN_FILEshell脚本=~/android-ndk-r21e/build/cmake/android.toolchain.cmagradle教程ke ..
$ make

编译 iOS 程序

$ xmake f -p iphoneos
$ xmake

比照 CMake

$ mkdir build
$ cd build
$ wget https://raw.githubusercontent.com/leetal/ios-cmake/master/ios.toolchain.cmake
$ cmake -DCMAKE_TOOLCHAIN_FILE=`pwd`/ios.tooiOSlchain.cmake ..
$ make

我没有找到很便利的方法去装备编译 ios 程序,只是只能从其他地方找到一个第三方的 ios 东西链去装备编译。

穿插编译

咱们java面试题一般只需求设置穿插编FFmpeg译东西链根目录,XMake 会主动检测东西链结构,提取里面的编译器参加编译,不需求额定ffmpeg羞耻柱事情装备什么。

$ xmake f -p cross -gradle下载-sdk=~/aarch64-linux-musl-cross
$ xmake

比照 CMake

咱们需求先额定写一个 cross-toolchain.cmake 的穿插东西链装备文件。

set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR aarch64)
set(TOOL_CHAIN_DIR ~/aarch64-linux-musl)
set(TOOL_CHAIN_INCLUios14桌面布局图片DE ${TOOL_CHAIN_DIR}/aarch6shell脚本根本指令4-linux-musl/inclgradle下载慢解决方法ude)
set(TOOL_CHAIN_LIB ${TOOL_CHAIN_DIR}/aarch64-linux-musl/lib)
set(CMAKE_C_COMPILER "aarch64-linux-gcc")
set(CMAKE_CXX_COMPILER "aarch64-linux-g++")
set(Cios14桌面布局图片MAKE_FIND_ROOT_shellfishPATgradle翻译H ${Tios下载OOL_CHAIN_DIR}/aarch64-linux-musl)
set(CMAKE_FIND_ROOT_PATHshellfish_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_shellyLios下载IBRARY ONLY)ios下载
set(CMAshell编程KE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
include_directories(${TOOL_CHAIN_DIR}/aarch6gradle下载慢解决方法4-linux-musl/include)
set(CMAKE_INCLUDE_java工作培训班PATH ${TOOL_CHAIN_INCLUDE})
set(CMAKE_LIBRARY_PATH ${TOOL_CHAIN_LIB})
$ mkdir build
$ cd build
$ cmake -DCMAKE_TOOLCHAIN_FILE=gradle翻译../cross-toolchain.cmake ..
$ makeShell

结语

假定你是 C/C++ 开发的新手,能够经过 XMake 快速上手入门 C/C++ 编译构建。

假定你想开发维护跨途径 C/C++ 项目,也能够考虑运用 XMake 来维护构建,行进开发功率,让你愈加专注于项目自身,不再为折腾移植依托库而烦恼。

欢迎重视 XMffmpeg羞耻柱事情ake 项目:

  • Github 项目地址
  • 项目主页
  • XMake 包处理库房
  • 社区
    • Telegram 群组
    • Discord 聊天室
    • QQ 群:343118190, 662147501
    • 微信大众号:tboox-os
  • 课程:Xmakejava言语 带你轻松构建 C/C++ 项目
  • 活动:开源之夏 & Xmake