-
-
Notifications
You must be signed in to change notification settings - Fork 808
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
删除有合并库的静态库文件后,重新编译会使库失效并会缺少文件 #1973
Comments
走 utils.archive.merge_staticlib merge |
既然用了 merge_staticlib,为什么还要 add_files 它们,这不是互相冲突覆写么。 另外,目前仅支持 merge 库,不会 merge pdb |
感谢您快速的回复,我会继续尝试解决问题。 |
我尝试将18行注释掉,print(target:objectfiles())输出的值中反而没有了我需要的库,得到的lib依旧错误 |
这不是对的么,就是不应该有,走 add_files .lib 才会 hack 下这么搞,最后把所有 obj 打到 target 走 merge_staticlib 接口,你要自己指定输出 lib path ,不会打入当前 target 自己看下参数说明
|
话说,我一直好奇,为什么不改成在 add_files 静态库时默认调用 merge_staticlib 呢 |
懒得改 没时间 |
改了下,再试试 |
非常感谢您的解释 |
确认下,刚的更新 可以了没有 |
工程中使用的还是旧版本的,我会尽快使用新版本的进行测试,同时我还发现了一些其他问题,确认后我将一并告诉您 |
用 dev 版本 |
好的 |
/temp.a /target.a 你确定这种 / 根路径 你有写权限?xmake 默认 root 下不让用的 |
这个例子我是简化后的,这些.a实际位置在D盘中我的工作目录下 |
win 我没环境,自己调下下面脚本,比如加上 android 什么的试试
|
好的,我会继续尝试 |
可以了么 |
不好意思让您久等了,我尝试了加上 android 选项,但这样依旧无法运行。目前我的项目编译使用 add_files,这里的问题暂时搁置了 。 |
我改进了下,你再试试,dev版本 |
以下代码,分别添加多个库可以了,
不过如果我想添加目录下全部的.a还是会提示找不到库
|
这不是shell,自己遍历追加 lib 并确保路径有效. os.files(path.join(os.projectdir(), "xxx", "*.a")) |
非常感谢,理解了 |
!!! 注:提问题时若使用
不能用/没效果/有问题/报错
此类模糊表达,但又没有根据下面的模板给出任何相关辅助信息的,将会直接标记为 Invalid。描述问题
我有一个名为test的项目,我期望将test文件夹中的资源编译为静态库使用。编译的结果放在bulid文件夹中。
编译后的文件夹:
xmake.lua:
windows32位编译使用的bat
xmake f -p windows -a x86 --vs_runtime=MTd -m debug xmake build
Android32位编译使用的bat
xmake f -p android -a armeabi-v7a -m release --ndk_cxxstl=gnustl_static xmake build
初次编译时生成的库是正常可用的,window编译生成了test.lib、test.pdb,Android编译生成test.a
当我不删除bulid文件夹,仅删除bulid文件夹中的test.lib、test.pdb和test.a,重新执行bat,此时重新生成的静态库无法使用,静态库的大小发生了变化,应该是在合并库时出现问题,并且test.pdb丢失。
而如果删除整个bulid文件夹,重新编译后,生成的静态库是完全正常的。
期待的结果
仅删除文件夹中生成的静态库文件时,重新编译依旧可以正常生成文件。
错误信息
这是我删除库文件后重新编译时的提示:
相关环境
请提供编译和运行环境信息,下面是一些必须填写的基础信息,便于我们针对性排查问题:
其他信息
如果我的描述不够清晰,您需要例子请留言
The text was updated successfully, but these errors were encountered: