ruki
ruki
pacman 的加上了 https://github.com/xmake-io/xmake/pull/5446
> 有些系统包管理同时提供静态库和动态库,比如 msys2 pacman,这个能用 configs shared 配置么 暂时支持不了,这种就没法走 `-L/-l` 了,只能强制走 linkpath 完整路径,目前它是在 add_packages 阶段决策的,没法在 find_package 阶段搞。。 那就要在 add_packages 阶段 去根据 configs + linkpath 区分处理了。。这个时候 configs 信息也没了,还得单独缓存特殊处理。。有点复杂,懒得搞。
> 大部分情况下,compile_commands.json 都无法正常生成,偶尔生成一次,可以发现 "-fcoroutines-ts" 选项并没有添加上 默认 add_cxxflags 会自动调用 clang 去尝试编译,检测 flags 是否被 clang 支持,不支持的 会自动忽略。。 说明你这 clang 并不支持 这个 flag ,仅仅支持 `-fcoroutines` 。。 当然你可以通过 `add_cxxflags("-fcoroutines-ts", {force = true})` 去强制加上,绕过自动检测,但是 clang...
另外我这里,即使没 `-fcoroutines ` 都能编译,没啥问题,要么就是你这编译器版本低或者其他编译器问题。 ```lua target("test") set_kind("binary") add_files("src/*.cpp", "src/*.ixx") ``` ```console ruki:test2 ruki$ xmake -r [ 0%]: generating.module.deps src/main.cpp [ 0%]: generating.module.deps src/foo.ixx [ 0%]: generating.module.deps /usr/local/Cellar/llvm/18.1.5/bin/../lib/c++/../../share/libc++/v1/std.cppm [ 0%]: generating.module.deps...
> /usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/coroutine:361:2: error: "the coroutine header requires -fcoroutines" 你这里是 linux ,用了 clang ,却是默认找了 gcc 链的 c++ 头文件。。 可以尝试安装 clang 对应的 libc++ 库,然后切到 libc++。。 ```console xmake f --toolchain=clang --runtime=c++_shared -c xmake...
> 具体引发envs.WindowsSDKVersion为一个空table的原因我定位不到,所以我简单判断了一下变量类型以保证xmake运行不报错。这是我的第三个更改。 这个还是要定位下,不然没解决根本原因。。可以用 debug.traceback 看下栈,按理应该是 string 才对
你调下这里,看看为啥没找到 https://github.com/xmake-io/xmake/blob/dev/xmake/modules/package/manager/apt/find_package.lua
这个包,没有头文件,也没有 `.so` 后缀的动态库,只有 `.so.5` 。。也没有 pkgconfig files 所以找不到,至少得有个 `libxxx.so` 才能找到库 ```console $ dpkg --listfiles libqt5multimedia5 /. /usr /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/libQt5Multimedia.so.5.15.3 /usr/share /usr/share/doc /usr/share/doc/libqt5multimedia5 /usr/share/doc/libqt5multimedia5/changelog.Debian.gz /usr/share/doc/libqt5multimedia5/copyright /usr/lib/x86_64-linux-gnu/libQt5Multimedia.so.5 /usr/lib/x86_64-linux-gnu/libQt5Multimedia.so.5.15 ``` https://github.com/xmake-io/xmake/blob/45852e6ffcd3f043d961574e72f40d287a2898ab/xmake/modules/package/manager/apt/find_package.lua#L51
vw_toolset 参数也不对。。没这个名字。只有 vs_toolset 另外,提供下 -vD logs
如果没有 .cpp 只要纯 module 文件,得用 moduleonly 而不是 static