Replies: 7 comments 8 replies
-
xmake f -c可以清除缓存;更新依赖之后本来就要重新编译的,依赖库变了不可能还和原来的文件链接到一起 |
Beta Was this translation helpful? Give feedback.
-
这样吗,我直接 xmake clean 清不掉。只是依赖库更新,接口没有变应该是可以不重新编译的吧,只需要重新链接就好了。 |
Beta Was this translation helpful? Give feedback.
-
xmake clean只是清除中间文件;xmake config -c才是更新依赖。接口变没变这个xmake无法确定的,更新依赖不会太频繁,偶尔重新编译一下问题不大 |
Beta Was this translation helpful? Give feedback.
-
接口变了的话,肯定要修改源文件啊,这个不就能判断了。make应该就是基于文件修改时间来判断的。如果接口变了又没有重新编译,这个链接的时候也会报错,这个时候就算忘了修改源码,应该也能想起来了。 |
Beta Was this translation helpful? Give feedback.
-
不是这么回事,你说的是API接口,我说的是ABI接口,很多库更新的时候API接口不变但ABI接口会变的,没法检测,比如你用了public的funcA函数,本来头文件里funcA调用funcB,现在funcA调用funcC,你不重新编译直接链接就会报错找不到funcB |
Beta Was this translation helpful? Give feedback.
-
更新 xmake 会导致各种可能性的变动,包括缓存格式,中间数据的存储路径变动 (尽管不可能每次都变),我记得更新完 xmake 会强制清一次 config cache ,重新检测所有,这个是躲不掉的。。如果自动清没生效,也建议自己手动执行 xmake f -c 强制触发检测所有缓存信息。 否则可能会导致各种问题。。而且又不可能天天升级 xmake。。 |
Beta Was this translation helpful? Give feedback.
-
上面说的那个应该是说像那种宏是一样的,但是宏的值改变了这样吧,这个确实是我没想到。那个 xmake f -c 我是没有想到这样去清除配置缓存,我以为xmake clean就能清除了。那是不直接再增加个类似 xmake clean -f 或 -a 的(force, all 这样),清除功能在一起。另外像 git 一样,执行结果给一些相关功能的提示,有时可能没想到用哪个功能,提示一下就知道了。git 真的是用过的最好用的功能。基本功能都不用去看手册。 |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Xmake 版本
v2.6.4+dev.35fa885
操作系统版本和架构
macOS 12.2.1 2015 amd64
描述问题
今天更新了下 brew,结果昨天能编译的项目又不能编译了,看了下是xmake缓存了之前的旧版依赖库的路径。现在我直接 rm -rf .xmake 删除缓存来解决的,但是这样的话,就要全部重新编译,如果是大项目比较浪费时间。
期待的结果
希望能自动判断更新外部依赖版本,重新链接就好了,不用全部重新编译。
工程配置
No response
附加信息和错误日志
No response
Beta Was this translation helpful? Give feedback.
All reactions