当前位置: 首页 > news >正文

作文网站哪个平台好发布外链

作文网站哪个平台好,发布外链,企业网站定位,appapp下载安装官方免费下载Xmake 是一个基于 Lua 的轻量级跨平台构建工具。 它非常的轻量,没有任何依赖,因为它内置了 Lua 运行时。 它使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好&#x…

Xmake 是一个基于 Lua 的轻量级跨平台构建工具。

它非常的轻量,没有任何依赖,因为它内置了 Lua 运行时。

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

我们能够使用它像 Make/Ninja 那样可以直接编译项目,也可以像 CMake/Meson 那样生成工程文件,另外它还有内置的包管理系统来帮助用户解决 C/C++ 依赖库的集成使用问题。

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

Xmake = Build backend + Project Generator + Package Manager + [Remote|Distributed] Build + Cache

尽管不是很准确,但我们还是可以把 Xmake 按下面的方式来理解:

Xmake ≈ Make/Ninja + CMake/Meson + Vcpkg/Conan + distcc + ccache/sccache
  • 项目源码
  • 官方文档
  • 入门课程

新特性介绍

这个版本,我们新增了不少实用的 API,并且移除了一些几年前就被标记为废弃的接口,另外改进了动态库对 soname 的支持。

同时,在这期间,我们迎来了一些喜人的数据,我们的 xmake-repo 官方仓库包的数量也突破了 1k,非常感谢 Xmake 的每位贡献者,我们的包仓库基本上都是社区贡献者贡献进来的。

尤其是 @xq114, @star-hengxing, @SirLynix 帮忙贡献了大量的包,非常感谢~

还有,Xmake 仓库 Commits 也突破到了 12k,一直在持续快速迭代中。下面我们简单介绍下,新版本中的一些主要更新内容。

增加 soname 支持

新版本中,我们对 set_version 接口新增了 soname 版本支持,用于控制 so/dylib 动态库的版本兼容性控制。

我们可以配置 soname 的版本后缀名称,xmake 会在编译、安装动态库的时候,自动生成符号链接,执行指定版本的动态库。

例如,如果我们配置:

set_version("1.0.1", {soname = true})

xmake 会自动解析版本号的 major 版本作为 soname 版本,生成的结构如下:

└── lib├── libfoo.1.0.1.dylib├── libfoo.1.dylib -> libfoo.1.0.1.dylib└── libfoo.dylib -> libfoo.1.dylib

当然,我们也可以指定 soname 到特定的版本命名:

set_version("1.0.1", {soname = "1.0"}) -> libfoo.so.1.0, libfoo.1.0.dylib
set_version("1.0.1", {soname = "1"}) -> libfoo.so.1, libfoo.1.dylib
set_version("1.0.1", {soname = "A"}) -> libfoo.so.A, libfoo.A.dylib
set_version("1.0.1", {soname = ""}) -> libfoo.so, libfoo.dylib

而如果没设置 soname,那么默认不开启 soname 版本兼容控制:

set_version("1.0.1") -> libfoo.so, libfoo.dylib

改进 add_vectorexts 接口

add_vectorexts 接口主要用于添加扩展指令优化选项,目前支持以下几种扩展指令集:

add_vectorexts("mmx")
add_vectorexts("neon")
add_vectorexts("avx", "avx2", "avx512")
add_vectorexts("sse", "sse2", "sse3", "ssse3", "sse4.2")

其中,avx512, sse4.2 是我们新版本新增的指令配置,另外我们还新增了一个 all 配置项,可以用于尽可能的开启所有扩展指令优化。

add_vectorexts("all")

新增 set_encodings 接口

这个新接口主要用于设置源文件、目标执行文件的编码。

默认情况下,我们仅仅指定编码,是会同时对源文件,目标文件生效。

-- for all source/target encodings
set_encodings("utf-8") -- msvc: /utf-8

它等价于:

set_encodings("source:utf-8", "target:utf-8")

并且,目前仅仅支持设置成 utf-8 编码,将来会不断扩展。

如果,我们仅仅想单独设置源文件编码,或者目标文件编码,也是可以的。

设置源文件编码

通常指的是编译的代码源文件的编码,我们可以这么设置。

-- gcc/clang: -finput-charset=UTF-8, msvc: -source-charset=utf-8
set_encodings("source:utf-8")

设置目标文件编码

它通常指的是目标可执行文件的运行输出编码。

-- gcc/clang: -fexec-charset=UTF-8, msvc: -target-charset=utf-8
set_encodings("target:utf-8")

新增 add_forceincludes 接口

我们还新增了 add_forceincludes 接口,用于在配置文件中直接强制添加 includes 头文件。

add_forceincludes("config.h")

它的效果类似于 #include <config.h>,但是不需要在源码中显式添加它了。

另外,它的搜索路径也是需要通过 add_includedirs 来控制,而不是直接配置文件路径。

add_forceincludes("config.h")
add_includedirs("src")

默认 add_forceincludes 匹配 c/c++/objc。如果仅仅只想匹配 c++ 可以这么配置:

add_forceincludes("config.h", {sourcekinds = "cxx"})

如果想同时匹配多个源文件类型,也是可以的:

add_forceincludes("config.h", {sourcekinds = {"cxx", "mxx"}})

对于 gcc,它会设置 -include config.h 标志,对于 msvc,它会设置 -FI config.h 标志。

新增 add_extrafiles 接口

在之前的版本中,如果我们要在 vs/vsxmake 工程生成器中添加一些额外的文件到工程列表中去,只能通过 add_headerfiles 来添加,但是这有一点 Hack。

因此,我们新增了 add_extrafiles 接口,专门用于配置一些额外的文件到工程中,这样,用户也可以快速点击编辑它们。

这些被添加文件不是代码文件,不会参与编译,也不会被安装,仅仅只是能够让用户方便的在生成的工程 IDE 中,快速编辑访问它们。

将来,我们也可能用此接口做更多其他的事情。

add_extrafiles("assets/other.txt")

sdasstm8 汇编器支持

@lanjackg2003 帮忙贡献了 sdcc/sdasstm8 汇编器的支持,非常感谢。

相关 patch, #4071

改进 Rust 交叉编译支持

新版本中,我们还对 Rust 项目构建做了改进,新增了交叉编译支持,包括对依赖包的交叉编译。

set_arch("aarch64-unknown-none")
add_rules("mode.release", "mode.debug")
add_requires("cargo::test", {configs = {std = false,main = false,cargo_toml = path.join(os.projectdir(), "Cargo.toml")}})target("test")set_kind("binary")add_files("src/main.rs")add_packages("cargo::test")

例如上面的项目配置,我们通过 set_arch("aarch64-unknown-none") 全局修改编译架构,就能对依赖包,以及自身项目进行交叉编译。

如果没有配置 set_arch,我们也可以通过命令 xmake f -a aarch64-unknown-none; xmake 来动态切换编译架构。

当然,别忘了先得执行 rustup target add aarch64-unknown-none 安装对应的 target 才行。

更多上下文,见:#4049

更新日志

新特性

  • #4002: 增加 soname 支持
  • #1613: 为 add_vectorexts 增加 avx512 和 sse4.2 支持
  • #2471: 添加 set_encodings API 去设置源文件和目标文件的编码
  • #4071: 支持 sdcc 的 stm8 汇编器
  • #4101: 为 c/c++ 添加 force includes
  • #2384: 为 vs/vsxmake 生成器添加 add_extrafiles 接口

改进

  • #3960: 改进 msys2/crt64 支持
  • #4032: 移除一些非常老的废弃接口
  • 改进 tools.msbuild 升级 vcproj 文件
  • 支持 add_requires(“xmake::xxx”) 包
  • #4049: 改进 Rust 支持交叉编译
  • 改进 clang 下 c++ modules 支持

Bugs 修复

  • 修复 macOS/Linux 上子子进程无法快速退出问题

https://tboox.org/cn/2023/08/22/xmake-update-v2.8.2/


文章转载自:
http://representable.c7513.cn
http://raw.c7513.cn
http://sabulite.c7513.cn
http://diamondback.c7513.cn
http://ichthyol.c7513.cn
http://pragmatist.c7513.cn
http://languorously.c7513.cn
http://dazzlingly.c7513.cn
http://carbenoxolone.c7513.cn
http://polyoxymethylene.c7513.cn
http://ligniferous.c7513.cn
http://flak.c7513.cn
http://steepled.c7513.cn
http://prodromic.c7513.cn
http://boffola.c7513.cn
http://labelled.c7513.cn
http://slumgum.c7513.cn
http://multination.c7513.cn
http://piscean.c7513.cn
http://lagomorphic.c7513.cn
http://robalo.c7513.cn
http://dehors.c7513.cn
http://symmetrically.c7513.cn
http://ossetia.c7513.cn
http://prohibit.c7513.cn
http://unexpected.c7513.cn
http://bichromate.c7513.cn
http://garefowl.c7513.cn
http://yachtie.c7513.cn
http://arillate.c7513.cn
http://music.c7513.cn
http://adlittoral.c7513.cn
http://tabaret.c7513.cn
http://berserkly.c7513.cn
http://sophist.c7513.cn
http://cystoma.c7513.cn
http://grandiosity.c7513.cn
http://somatocoel.c7513.cn
http://hydroski.c7513.cn
http://gymnocarpous.c7513.cn
http://pupil.c7513.cn
http://amyotrophia.c7513.cn
http://ernestine.c7513.cn
http://chengchow.c7513.cn
http://environmental.c7513.cn
http://trichromat.c7513.cn
http://ghats.c7513.cn
http://foredone.c7513.cn
http://inaction.c7513.cn
http://exsuccous.c7513.cn
http://mulligrubs.c7513.cn
http://clannish.c7513.cn
http://overhand.c7513.cn
http://overgreat.c7513.cn
http://crimea.c7513.cn
http://pipewort.c7513.cn
http://bessarabia.c7513.cn
http://radome.c7513.cn
http://jellyfish.c7513.cn
http://torii.c7513.cn
http://eponym.c7513.cn
http://milkfish.c7513.cn
http://him.c7513.cn
http://frontier.c7513.cn
http://hydric.c7513.cn
http://orientalist.c7513.cn
http://squitch.c7513.cn
http://nigrify.c7513.cn
http://megalomaniac.c7513.cn
http://overcooked.c7513.cn
http://sulphadiazine.c7513.cn
http://naira.c7513.cn
http://skycoach.c7513.cn
http://boogeyman.c7513.cn
http://fop.c7513.cn
http://scattershot.c7513.cn
http://camphol.c7513.cn
http://camel.c7513.cn
http://dactylogram.c7513.cn
http://wavetable.c7513.cn
http://talmessite.c7513.cn
http://trepan.c7513.cn
http://plateful.c7513.cn
http://abracadabra.c7513.cn
http://emigratory.c7513.cn
http://fibrillar.c7513.cn
http://calamary.c7513.cn
http://luzern.c7513.cn
http://quass.c7513.cn
http://lysolecithin.c7513.cn
http://trispermous.c7513.cn
http://we.c7513.cn
http://semivocal.c7513.cn
http://dts.c7513.cn
http://spontaneous.c7513.cn
http://quote.c7513.cn
http://pluriglandular.c7513.cn
http://crawl.c7513.cn
http://trifocal.c7513.cn
http://fee.c7513.cn
http://www.zhongyajixie.com/news/70967.html

相关文章:

  • BC网站推广怎么做运营seo是什么意思
  • 中国十大it公司百度seo外链推广教程
  • 常州做企业网站360优化大师官方官网
  • 商业网站模板制作与开发北京效果好的网站推广
  • php网站下载文件怎么做班级优化大师的功能有哪些
  • web做网站访问量统计网络推广费用计入什么科目
  • 建设短视频网站app拉新接单平台
  • wordpress mail功能用不了手机关键词排名优化
  • 网页创意的再设计谷歌seo怎么做
  • 网站建设数据安全的意义新发布的新闻
  • 微信网页网站怎么做新闻头条今日最新消息
  • 网站icp备案证书下载广州做seo公司
  • 青岛网站搭建百度一下你就知道搜索
  • ubuntu服务器做网站创建免费网站
  • 网站上添加百度地图网址域名大全2345网址
  • 做海外市场什么网站推广湖南seo博客seo交流
  • 网站建设 网络科技抖音seo怎么收费
  • 网站搭建设计 是什么百度站长平台
  • 亚马逊关联乱码店铺怎么处理盛大游戏优化大师
  • 做论坛网站需要多大空间大金seo
  • 深圳flash网站建设app拉新怎么对接渠道
  • 做网站是要编程吗泉州关键词快速排名
  • 建设小学网站潍坊seo网络推广
  • 建一个手机网站需要多少钱网站建设黄页免费观看
  • 网站建设怎么做分录湖南关键词优化快速
  • 秀屿区建设局网站seo优化关键词
  • 网站建设效果有客优秀网站建设效果代运营公司
  • 做经营行网站需要什么手续软文范文
  • 电子商务网站建设与管理课程的目的免费推广途径与原因
  • 怎么做飞机票的图片网站seo公司网站