-
-
Notifications
You must be signed in to change notification settings - Fork 812
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
ccache 无法正确处理宏参数中的换行 #2467
Comments
我这也改不了 msvc 预处理内部逻辑,如果前期对 预处理文件做文本替换修复,太影响性能,那就失去 ccache 的意义嘞。。 目前唯一的兼容方式就是,先尝试编译 预处理文件,如果失败了,再去尝试编译原始代码。 |
那要不要去给 msvc 官方提一下 issue |
msvc 不开源,你去哪提 issues = = 而且即使他们几年后修了,历史版本还得一样要兼容 |
这个23333 https://developercommunity.visualstudio.com/report?entry=problem |
那还得用户额外安装依赖,而且第三方兼容性怎样也不好说。。那还不如遇到问题了,自动回退到直接编译了,也就小概率事件,几不影响 ccache 优化,也不影响编译结果 |
确实,先实现一个 fallback 策略比较稳妥吧。有没有可能分文件设置,不然一个文件出现问题整个工程都没法用 ccache 了。 |
不用设置,编译错误了,自动回退到原始文件编译就行了,啥也不用改。 |
我改进过了,你再试试,更新到 dev xmake update -s dev |
可以通过编译了 |
Xmake Version
2.6.7 dev
Operating System Version and Architecture
21H2 MSVC 17
Describe Bug
复现最小示例
main.cpp
xmake.lua
ccache生成的文件:
其中第二个 #pragma 命令换行了行尾却没有 '\' 换行符,导致编译失败,输出:
也就是 #pragma 命令内部的换行能被正确处理,而宏参数内部的换行不能被正确处理。
Expected Behavior
正确处理宏参数内部的换行
Project Configuration
No response
Additional Information and Error Logs
No response
The text was updated successfully, but these errors were encountered: