add_rules("mode.debug","mode.release")add_requires("libpng")target("bar")set_kind("shared")add_files("src/foo.cpp")add_linkgroups("m","pthread",{whole=true})target("foo")set_kind("static")add_files("src/foo.cpp")add_packages("libpng",{public=true})target("demo")set_kind("bin...
-- 默认私有,但是 links/linkdirs 还是会自动导出add_packages("pcre2")-- 全部导出。包括 includedirs, definesadd_packages("pcre2", {public =true}) 更新内容 新特性 #955: 支持zig cc和zig c++作为 c/c++ 编译器 #955: 支持使用 zig 进行交叉编译 #1177: 改进终端和 color codes 探测 #1216: 传递...
-- 默认私有,但是 links/linkdirs 还是会自动导出 add_packages("pcre2") -- 全部导出。包括 includedirs, defines add_packages("pcre2", {public = true}) 更新内容 新特性 #955: 支持 zig cc 和zig c++ 作为c/c++ 编译器 #955: 支持使用 zig 进行交叉编译 #1177: 改进终端和 color codes 探测 #...
add_requires("muslcc")add_requires("zlib", "libogg", {system = false})set_plat("cross")set_arch("arm64")set_toolchains("@muslcc")target("test") set_kind("binary") add_files("src/*.c") add_packages("zlib", "libogg") 1. 完整例子见:Examples (muslcc) 拉取集成 Zig 工具链 xma...
add_packages("sfml~bar") 这是通过每个包的自定义配置来实现的,但这种方式会存在一些问题: sfml~foo和sfml~bar会作为两个独立的包,重复安装,占用双倍的磁盘空间 也会重复编译一些共用代码,影响安装效率 如果一个目标同时依赖了sfml~foo和sfml~bar,会存在链接冲突 ...
但是links,deps 和 packages 之间的链接顺序,只能按固定顺序生成,无法灵活调整,这对于一些复杂的项目,就有点显得力不从心了。 而我们在这个版本,彻底解决了这个问题,新增了add_linkorders接口,可用于配置目标、依赖、包、选项、链接组引入的各种链接顺序。
add_packages("libuv", "ffmpeg", "tbox", "boost_context", "zlib") xmake的包仓库设计之初,就考虑到了语义版本支持,以及依赖包的跨平台支持,只要包自身能支持的平台,都可以集成进来,比如zlib包,在xmake中使用,iphoneos, android以及mingw平台下都是完全可用的。
add_links 支持库路径 通常add_links 需要配合 add_linkdirs 使用,才能让链接器找到指定目录下的库文件。 但是有时候配置不对,或者不同路径下库重名,就容易找错库文件。而现在 add_links 可以支持直接设置库文件路径,避免隐式搜索。 也可以用于显式指定链接 so/a 库。
你是显式的 add_links 的呀。其实我是想自动 add_deps add_packages 的库,也能 link 全路径 这个不考虑 为什么呢,我看 cmake 也都是 link 全路径的,这种方式,能避免依赖冲突的问题。-L -l 这种在大型项目中非常不好用 Bot detected the issue body's language is not English, translate it automatically...
这个策略也是默认开启的,主要用于跨target间执行并行构建,v2.3.3之前的版本,并行构建只能针对单个target内部的所有源文件, 跨target的编译,必须要要等先前的target完全link成功,才能执行下一个target的编译,这在一定程度上会影响编译速度。 然而每个target的源文件是可以完全并行化处理的,最终在一起执行link过程,v2.3....