如何解决Ninja 将任何 add_subdirectory(foo) 预先添加到所有路径,导致在使用 vcpkg 的 Windows 上的 FindFirstFileExA 出错
我正在尝试将一个小型开源项目移植到 Windows。我用vcpkg安装了一个依赖(pcre2),将推荐路径添加到cmake环境中:
-DVCPKG_TARGET_TRIPLET:String=x64-windows-static
-DCMAKE_TOOLCHAIN_FILE=C:/Users/me/Documents/vcpkg/scripts/buildsystems/vcpkg.cmake
现在 cmake 步骤成功了,但构建步骤失败了:
ninja: error: FindFirstFileExA(src/d:/a/ssplit-cpp/ssplit-cpp/build): The filename,directory name,or volume label syntax is incorrect.
显然问题是出现在卷之前的 src
,但我不知道在我的环境中是什么让它这样做。可以在此处找到该项目:https://github.com/ugermann/ssplit-cpp
编辑:
问题在于 add_subdirectory(foo)
。调用它会使 ninja 在所有路径前面加上 foo
。为什么会这样?问题不在 vcpkg
EDIT2:在我们的 github 工作流中使用最少的 cmake
命令出现问题:
cmakeAppendedArgs: '-G Ninja -DCMAKE_BUILD_TYPE="Debug"'
EDIT3:看起来类似于 cmake add_subdirectory error only with cmake command line but not cmake-gui on windows (with source checked out at root of a drive letter),只是我的项目不是根目录。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。