Skip to content
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

三个子项目使用了同一个c++模块,同一个文件不应该被编译三次?error C3474: 无法打开输出文件 #3746

Closed
masx200 opened this issue May 15, 2023 · 16 comments
Labels
Milestone

Comments

@masx200
Copy link

masx200 commented May 15, 2023

Xmake 版本

v2.7.9+HEAD.c87922676

操作系统版本和架构

Microsoft Windows [版本 10.0.22621.1702] amd64

描述问题

https://github.com/masx200/leetcode-test/actions/runs/4982469146/jobs/8918177103

我有三个子项目都用到了同一个文件,这个文件被编译三次是不是不应该?

把三个项目分开单独编译都没问题,但是合到一起编译就报错了?

compiling.module.test leetcode_treenode_cpp.TreeNode这句话出现了三次

我发现在macos上使用clang16编译没有问题,看来是msvc的bug了?

[ 15%]: compiling.module.test leetcode_treenode_cpp.TreeNode
"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.35.32215\\bin\\HostX64\\x64\\cl.exe" -c -TP -nologo -std:c++20 -D__TEST__ /EHsc -external:W0 -external:IC:\Users\Administrator\Documents\vcpkg-master\installed\x64-windows-static\include -experimental:module -TP -ifcOutput build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\cd9c01bf\leetcode_treenode_cpp.TreeNode.ifc -interface -Fobuild\.objs\insufficient-nodes-in-root-to-leaf-paths-test\windows\x64\test\leetcode-treenode-cpp\TreeNode.ixx.obj leetcode-treenode-cpp\TreeNode.ixx
checking for flags (cl_sourceDependencies) ... ok
> cl.exe "/sourceDependencies" "C:\Users\Administrator\AppData\Local\Temp\.xmake\230515\_915BF03C14884F60810FE81B09ECEFB0.json" "-nologo"
error: @programdir\modules\private\async\runjobs.lua:256: @programdir\rules\c++\modules\modules_support\msvc.lua:124: @programdir\modules\core\tools\cl.lua:649: TreeNode.ixx
leetcode-treenode-cpp\TreeNode.ixx(40): error C3474: 无法打开输出文件“build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\cd9c01bf\leetcode_treenode_cpp.TreeNode.ifc”

期待的结果

不应该出现错误

工程配置

主配置文件

xmake.lua

set_policy("platform.longpaths", true)
set_languages("c17", "cxx20");

target('leetcode-test')
set_languages("c++20");
set_kind('static')
set_policy("build.c++.modules", true);
add_files('*/*.ixx', {install = true})

add_files("./leetcode-treenode-cpp/*.ixx");
target_end()
includes("./*/xmake.lua")

leetcode-treenode-cpp/xmake.lua

-- 如果当前编译模式是test
if is_mode("test") then add_requires("vcpkg::eventpp") end
set_policy("platform.longpaths", true)
set_version("1.1.4")

add_requires("vcpkg::cppunit")
set_languages("c17", "cxx20")
set_project("leetcode-treenode-cpp")
target("leetcode-treenode-cpp")
-- 如果当前编译模式是test
if is_mode("test") then

    -- 添加test编译宏
    add_defines("__TEST__")
    add_packages("vcpkg::eventpp")
end
set_kind("static")

add_files("*.ixx", {install = true})

target_end()
target("test")
if is_mode("test") then

    -- 添加test编译宏
    add_defines("__TEST__")
    add_packages("vcpkg::eventpp")
end
set_group("test")
set_default(false)
set_kind("binary")
add_files("*.cpp")

add_packages("vcpkg::cppunit")
add_deps("leetcode-treenode-cpp")
target_end()

insert-into-a-binary-search-tree/xmake.lua

if is_mode("test") then add_requires("vcpkg::eventpp") end
set_policy("platform.longpaths", true)

add_rules("mode.debug", "mode.release");

add_requires("vcpkg::cppunit");
set_languages("c17", "cxx20");
target("insert-into-a-binary-search-tree-test");
-- 如果当前编译模式是test
if is_mode("test") then

    -- 添加test编译宏
    add_defines("__TEST__")
    add_packages("vcpkg::eventpp")
end
set_group("test")
set_default(false)
set_kind("binary");
set_languages("c++20");
set_policy("build.c++.modules", true);
add_files("*.ixx");
add_files("test.cpp");
add_packages("vcpkg::cppunit");

add_files("../leetcode-treenode-cpp/*.ixx");
target_end();

insufficient-nodes-in-root-to-leaf-paths/xmake.lua

if is_mode("test") then add_requires("vcpkg::eventpp") end
set_policy("platform.longpaths", true)

add_rules("mode.debug", "mode.release");

set_languages("c17", "cxx20");
add_requires("vcpkg::gtest");
target("insufficient-nodes-in-root-to-leaf-paths-test");
-- 如果当前编译模式是test
if is_mode("test") then

    -- 添加test编译宏
    add_defines("__TEST__")
    add_packages("vcpkg::eventpp")
end
set_group("test")
set_default(false)
set_kind("binary");

add_files("printTreeNode.ixx", "*.ixx");
set_languages("c++20");
set_policy("build.c++.modules", true);
add_files("test.cpp");
add_packages("vcpkg::gtest");

add_files("../leetcode-treenode-cpp/*.ixx");
target_end();

附加信息和错误日志

PS C:\leetcode-test> xmake clean -a
PS C:\leetcode-test> xmake config  --mode=test
checking for platform ... windows
checking for architecture ... x64
checking for Microsoft Visual Studio (x64) version ... 2022
PS C:\leetcode-test> xmake build  --group=test -v -y -D -w
checking for flags (cl_scan_dependencies) ... ok
> cl.exe "-scanDependencies" "C:\Users\Administrator\AppData\Local\Temp\.xmake\230515\_60B7A2B062644E60875105C1FC095AC0.json" "-nologo"
checking for flags (cl_ifc_output) ... ok
> cl.exe "-ifcOutput" "C:\Users\Administrator\AppData\Local\Temp\.xmake\230515\_84D060476C80465088E2925546AC7F90" "-nologo"
[  0%]: generating.module.deps check-if-it-is-a-good-array\index.ixx
checking for flags (-std:c++20) ... ok
> cl.exe "-std:c++20" "-nologo"
checking for flags (cl_external_includedir) ... ok
> cl.exe "-external:W0" "-external:IC:\Users\Administrator\Documents\vcpkg-master\installed\x64-windows-static\include" "-nologo"
checking for flags (-experimental:module) ... ok
> cl.exe "-experimental:module" "-nologo"
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\bin\HostX64\x64\cl.exe -nologo -std:c++20 /EHsc -external:W0 -external:IC:\Users\Administrator\Documents\vcpkg-master\installed\x64-windows-static\include -experimental:module -TP -scanDependencies build\.gens\check-if-it-is-a-good-array-test\windows\x64\test\rules\modules\cache\3e4bb2cd\index.ixx.module.json check-if-it-is-a-good-array\index.ixx -ifcOutput build\.gens\check-if-it-is-a-good-array-test\windows\x64\test\rules\modules\cache\3e4bb2cd -Fobuild\.objs\check-if-it-is-a-good-array-test\windows\x64\test\check-if-it-is-a-good-array\index.ixx.obj
index.ixx
[  0%]: generating.module.deps check-if-it-is-a-good-array\test.cpp
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\bin\HostX64\x64\cl.exe -nologo -std:c++20 /EHsc -external:W0 -external:IC:\Users\Administrator\Documents\vcpkg-master\installed\x64-windows-static\include -experimental:module -TP -scanDependencies build\.gens\check-if-it-is-a-good-array-test\windows\x64\test\rules\modules\cache\3e4bb2cd\test.cpp.module.json check-if-it-is-a-good-array\test.cpp -ifcOutput build\.gens\check-if-it-is-a-good-array-test\windows\x64\test\rules\modules\cache\3e4bb2cd -Fobuild\.objs\check-if-it-is-a-good-array-test\windows\x64\test\check-if-it-is-a-good-array\test.cpp.obj
test.cpp
checking for flags (cl_interface) ... ok
> cl.exe "-interface" "-nologo"
checking for flags (cl_reference) ... ok
> cl.exe "-reference" "Foo=C:\Users\Administrator\AppData\Local\Temp\.xmake\230515\_7BDD694612E244608F6686EF55C6E2B0" "-nologo"
checking for flags (cl_internal_partition) ... ok
> cl.exe "-internalPartition" "-nologo"
[  0%]: generating.module.deps split-a-circular-linked-list\ArrayToCircularLinkedList.ixx
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\bin\HostX64\x64\cl.exe -nologo -std:c++20 -D__TEST__ /EHsc -external:W0 -external:IC:\Users\Administrator\Documents\vcpkg-master\installed\x64-windows-static\include -experimental:module -TP -scanDependencies build\.gens\split-a-circular-linked-list-test\windows\x64\test\rules\modules\cache\f3d65670\ArrayToCircularLinkedList.ixx.module.json split-a-circular-linked-list\ArrayToCircularLinkedList.ixx -ifcOutput build\.gens\split-a-circular-linked-list-test\windows\x64\test\rules\modules\cache\f3d65670 -Fobuild\.objs\split-a-circular-linked-list-test\windows\x64\test\split-a-circular-linked-list\ArrayToCircularLinkedList.ixx.obj
ArrayToCircularLinkedList.ixx
[  0%]: generating.module.deps split-a-circular-linked-list\CircularLinkedListToArray.ixx
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\bin\HostX64\x64\cl.exe -nologo -std:c++20 -D__TEST__ /EHsc -external:W0 -external:IC:\Users\Administrator\Documents\vcpkg-master\installed\x64-windows-static\include -experimental:module -TP -scanDependencies build\.gens\split-a-circular-linked-list-test\windows\x64\test\rules\modules\cache\f3d65670\CircularLinkedListToArray.ixx.module.json split-a-circular-linked-list\CircularLinkedListToArray.ixx -ifcOutput build\.gens\split-a-circular-linked-list-test\windows\x64\test\rules\modules\cache\f3d65670 -Fobuild\.objs\split-a-circular-linked-list-test\windows\x64\test\split-a-circular-linked-list\CircularLinkedListToArray.ixx.obj
CircularLinkedListToArray.ixx
[  0%]: generating.module.deps split-a-circular-linked-list\index.ixx
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\bin\HostX64\x64\cl.exe -nologo -std:c++20 -D__TEST__ /EHsc -external:W0 -external:IC:\Users\Administrator\Documents\vcpkg-master\installed\x64-windows-static\include -experimental:module -TP -scanDependencies build\.gens\split-a-circular-linked-list-test\windows\x64\test\rules\modules\cache\f3d65670\index.ixx.module.json split-a-circular-linked-list\index.ixx -ifcOutput build\.gens\split-a-circular-linked-list-test\windows\x64\test\rules\modules\cache\f3d65670 -Fobuild\.objs\split-a-circular-linked-list-test\windows\x64\test\split-a-circular-linked-list\index.ixx.obj
index.ixx
[  0%]: generating.module.deps split-a-circular-linked-list\ListNode.ixx
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\bin\HostX64\x64\cl.exe -nologo -std:c++20 -D__TEST__ /EHsc -external:W0 -external:IC:\Users\Administrator\Documents\vcpkg-master\installed\x64-windows-static\include -experimental:module -TP -scanDependencies build\.gens\split-a-circular-linked-list-test\windows\x64\test\rules\modules\cache\f3d65670\ListNode.ixx.module.json split-a-circular-linked-list\ListNode.ixx -ifcOutput build\.gens\split-a-circular-linked-list-test\windows\x64\test\rules\modules\cache\f3d65670 -Fobuild\.objs\split-a-circular-linked-list-test\windows\x64\test\split-a-circular-linked-list\ListNode.ixx.obj
ListNode.ixx
[  0%]: generating.module.deps split-a-circular-linked-list\TraversalCircularListNode.ixx
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\bin\HostX64\x64\cl.exe -nologo -std:c++20 -D__TEST__ /EHsc -external:W0 -external:IC:\Users\Administrator\Documents\vcpkg-master\installed\x64-windows-static\include -experimental:module -TP -scanDependencies build\.gens\split-a-circular-linked-list-test\windows\x64\test\rules\modules\cache\f3d65670\TraversalCircularListNode.ixx.module.json split-a-circular-linked-list\TraversalCircularListNode.ixx -ifcOutput build\.gens\split-a-circular-linked-list-test\windows\x64\test\rules\modules\cache\f3d65670 -Fobuild\.objs\split-a-circular-linked-list-test\windows\x64\test\split-a-circular-linked-list\TraversalCircularListNode.ixx.obj
TraversalCircularListNode.ixx
[  0%]: generating.module.deps split-a-circular-linked-list\test.cpp
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\bin\HostX64\x64\cl.exe -nologo -std:c++20 -D__TEST__ /EHsc -external:W0 -external:IC:\Users\Administrator\Documents\vcpkg-master\installed\x64-windows-static\include -experimental:module -TP -scanDependencies build\.gens\split-a-circular-linked-list-test\windows\x64\test\rules\modules\cache\f3d65670\test.cpp.module.json split-a-circular-linked-list\test.cpp -ifcOutput build\.gens\split-a-circular-linked-list-test\windows\x64\test\rules\modules\cache\f3d65670 -Fobuild\.objs\split-a-circular-linked-list-test\windows\x64\test\split-a-circular-linked-list\test.cpp.obj
test.cpp
[  0%]: generating.module.deps fibonacci-number\index.ixx
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\bin\HostX64\x64\cl.exe -nologo -std:c++20 /EHsc -external:W0 -external:IC:\Users\Administrator\Documents\vcpkg-master\installed\x64-windows-static\include -experimental:module -TP -scanDependencies build\.gens\ibonacci-number-test\windows\x64\test\rules\modules\cache\6e2af2a3\index.ixx.module.json fibonacci-number\index.ixx -ifcOutput build\.gens\ibonacci-number-test\windows\x64\test\rules\modules\cache\6e2af2a3 -Fobuild\.objs\ibonacci-number-test\windows\x64\test\fibonacci-number\index.ixx.obj
index.ixx
[  0%]: generating.module.deps fibonacci-number\test.cpp
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\bin\HostX64\x64\cl.exe -nologo -std:c++20 /EHsc -external:W0 -external:IC:\Users\Administrator\Documents\vcpkg-master\installed\x64-windows-static\include -experimental:module -TP -scanDependencies build\.gens\ibonacci-number-test\windows\x64\test\rules\modules\cache\6e2af2a3\test.cpp.module.json fibonacci-number\test.cpp -ifcOutput build\.gens\ibonacci-number-test\windows\x64\test\rules\modules\cache\6e2af2a3 -Fobuild\.objs\ibonacci-number-test\windows\x64\test\fibonacci-number\test.cpp.obj
test.cpp
[  0%]: generating.module.deps design-linked-list\test.cpp
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\bin\HostX64\x64\cl.exe -nologo -std:c++20 -D__TEST__ /EHsc -external:W0 -external:IC:\Users\Administrator\Documents\vcpkg-master\installed\x64-windows-static\include -experimental:module -TP -scanDependencies build\.gens\design-linked-list-test\windows\x64\test\rules\modules\cache\5587f9a5\test.cpp.module.json design-linked-list\test.cpp -ifcOutput build\.gens\design-linked-list-test\windows\x64\test\rules\modules\cache\5587f9a5 -Fobuild\.objs\design-linked-list-test\windows\x64\test\design-linked-list\test.cpp.obj
test.cpp
[  0%]: generating.module.deps design-linked-list\index.ixx
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\bin\HostX64\x64\cl.exe -nologo -std:c++20 -D__TEST__ /EHsc -external:W0 -external:IC:\Users\Administrator\Documents\vcpkg-master\installed\x64-windows-static\include -experimental:module -TP -scanDependencies build\.gens\design-linked-list\windows\x64\test\rules\modules\cache\652f18b9\index.ixx.module.json design-linked-list\index.ixx -ifcOutput build\.gens\design-linked-list\windows\x64\test\rules\modules\cache\652f18b9 -Fobuild\.objs\design-linked-list\windows\x64\test\design-linked-list\index.ixx.obj
index.ixx
[  0%]: generating.module.deps insert-into-a-binary-search-tree\debugTreeNode.ixx
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\bin\HostX64\x64\cl.exe -nologo -std:c++20 -D__TEST__ /EHsc -external:W0 -external:IC:\Users\Administrator\Documents\vcpkg-master\installed\x64-windows-static\include -experimental:module -TP -scanDependencies build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\6b2e41c2\debugTreeNode.ixx.module.json insert-into-a-binary-search-tree\debugTreeNode.ixx -ifcOutput build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\6b2e41c2 -Fobuild\.objs\insert-into-a-binary-search-tree-test\windows\x64\test\insert-into-a-binary-search-tree\debugTreeNode.ixx.obj
debugTreeNode.ixx
[  0%]: generating.module.deps insert-into-a-binary-search-tree\EqualTreeNode.ixx
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\bin\HostX64\x64\cl.exe -nologo -std:c++20 -D__TEST__ /EHsc -external:W0 -external:IC:\Users\Administrator\Documents\vcpkg-master\installed\x64-windows-static\include -experimental:module -TP -scanDependencies build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\6b2e41c2\EqualTreeNode.ixx.module.json insert-into-a-binary-search-tree\EqualTreeNode.ixx -ifcOutput build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\6b2e41c2 -Fobuild\.objs\insert-into-a-binary-search-tree-test\windows\x64\test\insert-into-a-binary-search-tree\EqualTreeNode.ixx.obj
EqualTreeNode.ixx
[  0%]: generating.module.deps insert-into-a-binary-search-tree\HashTreeNode.ixx
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\bin\HostX64\x64\cl.exe -nologo -std:c++20 -D__TEST__ /EHsc -external:W0 -external:IC:\Users\Administrator\Documents\vcpkg-master\installed\x64-windows-static\include -experimental:module -TP -scanDependencies build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\6b2e41c2\HashTreeNode.ixx.module.json insert-into-a-binary-search-tree\HashTreeNode.ixx -ifcOutput build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\6b2e41c2 -Fobuild\.objs\insert-into-a-binary-search-tree-test\windows\x64\test\insert-into-a-binary-search-tree\HashTreeNode.ixx.obj
HashTreeNode.ixx
[  0%]: generating.module.deps insert-into-a-binary-search-tree\index.ixx
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\bin\HostX64\x64\cl.exe -nologo -std:c++20 -D__TEST__ /EHsc -external:W0 -external:IC:\Users\Administrator\Documents\vcpkg-master\installed\x64-windows-static\include -experimental:module -TP -scanDependencies build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\6b2e41c2\index.ixx.module.json insert-into-a-binary-search-tree\index.ixx -ifcOutput build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\6b2e41c2 -Fobuild\.objs\insert-into-a-binary-search-tree-test\windows\x64\test\insert-into-a-binary-search-tree\index.ixx.obj
index.ixx
[  0%]: generating.module.deps insert-into-a-binary-search-tree\PostOrderTraversal.ixx
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\bin\HostX64\x64\cl.exe -nologo -std:c++20 -D__TEST__ /EHsc -external:W0 -external:IC:\Users\Administrator\Documents\vcpkg-master\installed\x64-windows-static\include -experimental:module -TP -scanDependencies build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\6b2e41c2\PostOrderTraversal.ixx.module.json insert-into-a-binary-search-tree\PostOrderTraversal.ixx -ifcOutput build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\6b2e41c2 -Fobuild\.objs\insert-into-a-binary-search-tree-test\windows\x64\test\insert-into-a-binary-search-tree\PostOrderTraversal.ixx.obj
PostOrderTraversal.ixx
[  0%]: generating.module.deps insert-into-a-binary-search-tree\printTreeNode.ixx
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\bin\HostX64\x64\cl.exe -nologo -std:c++20 -D__TEST__ /EHsc -external:W0 -external:IC:\Users\Administrator\Documents\vcpkg-master\installed\x64-windows-static\include -experimental:module -TP -scanDependencies build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\6b2e41c2\printTreeNode.ixx.module.json insert-into-a-binary-search-tree\printTreeNode.ixx -ifcOutput build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\6b2e41c2 -Fobuild\.objs\insert-into-a-binary-search-tree-test\windows\x64\test\insert-into-a-binary-search-tree\printTreeNode.ixx.obj
printTreeNode.ixx
[  0%]: generating.module.deps insert-into-a-binary-search-tree\test.cpp
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\bin\HostX64\x64\cl.exe -nologo -std:c++20 -D__TEST__ /EHsc -external:W0 -external:IC:\Users\Administrator\Documents\vcpkg-master\installed\x64-windows-static\include -experimental:module -TP -scanDependencies build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\6b2e41c2\test.cpp.module.json insert-into-a-binary-search-tree\test.cpp -ifcOutput build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\6b2e41c2 -Fobuild\.objs\insert-into-a-binary-search-tree-test\windows\x64\test\insert-into-a-binary-search-tree\test.cpp.obj
test.cpp
[  0%]: generating.module.deps leetcode-treenode-cpp\bfsTravelsal.ixx
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\bin\HostX64\x64\cl.exe -nologo -std:c++20 -D__TEST__ /EHsc -external:W0 -external:IC:\Users\Administrator\Documents\vcpkg-master\installed\x64-windows-static\include -experimental:module -TP -scanDependencies build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\cd9c01bf\bfsTravelsal.ixx.module.json leetcode-treenode-cpp\bfsTravelsal.ixx -ifcOutput build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\cd9c01bf -Fobuild\.objs\insert-into-a-binary-search-tree-test\windows\x64\test\leetcode-treenode-cpp\bfsTravelsal.ixx.obj
bfsTravelsal.ixx
[  0%]: generating.module.deps leetcode-treenode-cpp\freeTreeNode.ixx
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\bin\HostX64\x64\cl.exe -nologo -std:c++20 -D__TEST__ /EHsc -external:W0 -external:IC:\Users\Administrator\Documents\vcpkg-master\installed\x64-windows-static\include -experimental:module -TP -scanDependencies build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\cd9c01bf\freeTreeNode.ixx.module.json leetcode-treenode-cpp\freeTreeNode.ixx -ifcOutput build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\cd9c01bf -Fobuild\.objs\insert-into-a-binary-search-tree-test\windows\x64\test\leetcode-treenode-cpp\freeTreeNode.ixx.obj
freeTreeNode.ixx
[  0%]: generating.module.deps leetcode-treenode-cpp\LeetCodeTreeNodeToString.ixx
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\bin\HostX64\x64\cl.exe -nologo -std:c++20 -D__TEST__ /EHsc -external:W0 -external:IC:\Users\Administrator\Documents\vcpkg-master\installed\x64-windows-static\include -experimental:module -TP -scanDependencies build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\cd9c01bf\LeetCodeTreeNodeToString.ixx.module.json leetcode-treenode-cpp\LeetCodeTreeNodeToString.ixx -ifcOutput build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\cd9c01bf -Fobuild\.objs\insert-into-a-binary-search-tree-test\windows\x64\test\leetcode-treenode-cpp\LeetCodeTreeNodeToString.ixx.obj
LeetCodeTreeNodeToString.ixx
[  0%]: generating.module.deps leetcode-treenode-cpp\parseLeetCodeBinaryTree.ixx
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\bin\HostX64\x64\cl.exe -nologo -std:c++20 -D__TEST__ /EHsc -external:W0 -external:IC:\Users\Administrator\Documents\vcpkg-master\installed\x64-windows-static\include -experimental:module -TP -scanDependencies build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\cd9c01bf\parseLeetCodeBinaryTree.ixx.module.json leetcode-treenode-cpp\parseLeetCodeBinaryTree.ixx -ifcOutput build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\cd9c01bf -Fobuild\.objs\insert-into-a-binary-search-tree-test\windows\x64\test\leetcode-treenode-cpp\parseLeetCodeBinaryTree.ixx.obj
parseLeetCodeBinaryTree.ixx
[  0%]: generating.module.deps leetcode-treenode-cpp\serializeTreeNode.ixx
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\bin\HostX64\x64\cl.exe -nologo -std:c++20 -D__TEST__ /EHsc -external:W0 -external:IC:\Users\Administrator\Documents\vcpkg-master\installed\x64-windows-static\include -experimental:module -TP -scanDependencies build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\cd9c01bf\serializeTreeNode.ixx.module.json leetcode-treenode-cpp\serializeTreeNode.ixx -ifcOutput build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\cd9c01bf -Fobuild\.objs\insert-into-a-binary-search-tree-test\windows\x64\test\leetcode-treenode-cpp\serializeTreeNode.ixx.obj
serializeTreeNode.ixx
[  0%]: generating.module.deps leetcode-treenode-cpp\traversalTreeNode.ixx
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\bin\HostX64\x64\cl.exe -nologo -std:c++20 -D__TEST__ /EHsc -external:W0 -external:IC:\Users\Administrator\Documents\vcpkg-master\installed\x64-windows-static\include -experimental:module -TP -scanDependencies build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\cd9c01bf\traversalTreeNode.ixx.module.json leetcode-treenode-cpp\traversalTreeNode.ixx -ifcOutput build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\cd9c01bf -Fobuild\.objs\insert-into-a-binary-search-tree-test\windows\x64\test\leetcode-treenode-cpp\traversalTreeNode.ixx.obj
traversalTreeNode.ixx
[  0%]: generating.module.deps leetcode-treenode-cpp\TreeNode.ixx
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\bin\HostX64\x64\cl.exe -nologo -std:c++20 -D__TEST__ /EHsc -external:W0 -external:IC:\Users\Administrator\Documents\vcpkg-master\installed\x64-windows-static\include -experimental:module -TP -scanDependencies build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\cd9c01bf\TreeNode.ixx.module.json leetcode-treenode-cpp\TreeNode.ixx -ifcOutput build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\cd9c01bf -Fobuild\.objs\insert-into-a-binary-search-tree-test\windows\x64\test\leetcode-treenode-cpp\TreeNode.ixx.obj
TreeNode.ixx
[  0%]: generating.module.deps leetcode-treenode-cpp\test.cpp
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\bin\HostX64\x64\cl.exe -nologo -std:c++20 -D__TEST__ /EHsc -external:W0 -external:IC:\Users\Administrator\Documents\vcpkg-master\installed\x64-windows-static\include -experimental:module -TP -scanDependencies build\.gens\test\windows\x64\test\rules\modules\cache\b5a1c81a\test.cpp.module.json leetcode-treenode-cpp\test.cpp -ifcOutput build\.gens\test\windows\x64\test\rules\modules\cache\b5a1c81a -Fobuild\.objs\test\windows\x64\test\leetcode-treenode-cpp\test.cpp.obj
test.cpp
[  0%]: generating.module.deps leetcode-treenode-cpp\bfsTravelsal.ixx
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\bin\HostX64\x64\cl.exe -nologo -std:c++20 -D__TEST__ /EHsc -external:W0 -external:IC:\Users\Administrator\Documents\vcpkg-master\installed\x64-windows-static\include -experimental:module -TP -scanDependencies build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\cd9c01bf\bfsTravelsal.ixx.module.json leetcode-treenode-cpp\bfsTravelsal.ixx -ifcOutput build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\cd9c01bf -Fobuild\.objs\leetcode-treenode-cpp\windows\x64\test\leetcode-treenode-cpp\bfsTravelsal.ixx.obj
bfsTravelsal.ixx
[  0%]: generating.module.deps leetcode-treenode-cpp\freeTreeNode.ixx
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\bin\HostX64\x64\cl.exe -nologo -std:c++20 -D__TEST__ /EHsc -external:W0 -external:IC:\Users\Administrator\Documents\vcpkg-master\installed\x64-windows-static\include -experimental:module -TP -scanDependencies build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\cd9c01bf\freeTreeNode.ixx.module.json leetcode-treenode-cpp\freeTreeNode.ixx -ifcOutput build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\cd9c01bf -Fobuild\.objs\leetcode-treenode-cpp\windows\x64\test\leetcode-treenode-cpp\freeTreeNode.ixx.obj
freeTreeNode.ixx
[  0%]: generating.module.deps leetcode-treenode-cpp\LeetCodeTreeNodeToString.ixx
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\bin\HostX64\x64\cl.exe -nologo -std:c++20 -D__TEST__ /EHsc -external:W0 -external:IC:\Users\Administrator\Documents\vcpkg-master\installed\x64-windows-static\include -experimental:module -TP -scanDependencies build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\cd9c01bf\LeetCodeTreeNodeToString.ixx.module.json leetcode-treenode-cpp\LeetCodeTreeNodeToString.ixx -ifcOutput build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\cd9c01bf -Fobuild\.objs\leetcode-treenode-cpp\windows\x64\test\leetcode-treenode-cpp\LeetCodeTreeNodeToString.ixx.obj
LeetCodeTreeNodeToString.ixx
[  0%]: generating.module.deps leetcode-treenode-cpp\parseLeetCodeBinaryTree.ixx
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\bin\HostX64\x64\cl.exe -nologo -std:c++20 -D__TEST__ /EHsc -external:W0 -external:IC:\Users\Administrator\Documents\vcpkg-master\installed\x64-windows-static\include -experimental:module -TP -scanDependencies build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\cd9c01bf\parseLeetCodeBinaryTree.ixx.module.json leetcode-treenode-cpp\parseLeetCodeBinaryTree.ixx -ifcOutput build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\cd9c01bf -Fobuild\.objs\leetcode-treenode-cpp\windows\x64\test\leetcode-treenode-cpp\parseLeetCodeBinaryTree.ixx.obj
parseLeetCodeBinaryTree.ixx
[  0%]: generating.module.deps leetcode-treenode-cpp\serializeTreeNode.ixx
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\bin\HostX64\x64\cl.exe -nologo -std:c++20 -D__TEST__ /EHsc -external:W0 -external:IC:\Users\Administrator\Documents\vcpkg-master\installed\x64-windows-static\include -experimental:module -TP -scanDependencies build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\cd9c01bf\serializeTreeNode.ixx.module.json leetcode-treenode-cpp\serializeTreeNode.ixx -ifcOutput build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\cd9c01bf -Fobuild\.objs\leetcode-treenode-cpp\windows\x64\test\leetcode-treenode-cpp\serializeTreeNode.ixx.obj
serializeTreeNode.ixx
[  0%]: generating.module.deps leetcode-treenode-cpp\traversalTreeNode.ixx
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\bin\HostX64\x64\cl.exe -nologo -std:c++20 -D__TEST__ /EHsc -external:W0 -external:IC:\Users\Administrator\Documents\vcpkg-master\installed\x64-windows-static\include -experimental:module -TP -scanDependencies build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\cd9c01bf\traversalTreeNode.ixx.module.json leetcode-treenode-cpp\traversalTreeNode.ixx -ifcOutput build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\cd9c01bf -Fobuild\.objs\leetcode-treenode-cpp\windows\x64\test\leetcode-treenode-cpp\traversalTreeNode.ixx.obj
traversalTreeNode.ixx
[  0%]: generating.module.deps leetcode-treenode-cpp\TreeNode.ixx
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\bin\HostX64\x64\cl.exe -nologo -std:c++20 -D__TEST__ /EHsc -external:W0 -external:IC:\Users\Administrator\Documents\vcpkg-master\installed\x64-windows-static\include -experimental:module -TP -scanDependencies build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\cd9c01bf\TreeNode.ixx.module.json leetcode-treenode-cpp\TreeNode.ixx -ifcOutput build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\cd9c01bf -Fobuild\.objs\leetcode-treenode-cpp\windows\x64\test\leetcode-treenode-cpp\TreeNode.ixx.obj
TreeNode.ixx
[  0%]: generating.module.deps insufficient-nodes-in-root-to-leaf-paths\printTreeNode.ixx
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\bin\HostX64\x64\cl.exe -nologo -std:c++20 -D__TEST__ /EHsc -external:W0 -external:IC:\Users\Administrator\Documents\vcpkg-master\installed\x64-windows-static\include -experimental:module -TP -scanDependencies build\.gens\insufficient-nodes-in-root-to-leaf-paths-test\windows\x64\test\rules\modules\cache\2f7477b1\printTreeNode.ixx.module.json insufficient-nodes-in-root-to-leaf-paths\printTreeNode.ixx -ifcOutput build\.gens\insufficient-nodes-in-root-to-leaf-paths-test\windows\x64\test\rules\modules\cache\2f7477b1 -Fobuild\.objs\insufficient-nodes-in-root-to-leaf-paths-test\windows\x64\test\insufficient-nodes-in-root-to-leaf-paths\printTreeNode.ixx.obj
printTreeNode.ixx
[  0%]: generating.module.deps insufficient-nodes-in-root-to-leaf-paths\debugTreeNode.ixx
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\bin\HostX64\x64\cl.exe -nologo -std:c++20 -D__TEST__ /EHsc -external:W0 -external:IC:\Users\Administrator\Documents\vcpkg-master\installed\x64-windows-static\include -experimental:module -TP -scanDependencies build\.gens\insufficient-nodes-in-root-to-leaf-paths-test\windows\x64\test\rules\modules\cache\2f7477b1\debugTreeNode.ixx.module.json insufficient-nodes-in-root-to-leaf-paths\debugTreeNode.ixx -ifcOutput build\.gens\insufficient-nodes-in-root-to-leaf-paths-test\windows\x64\test\rules\modules\cache\2f7477b1 -Fobuild\.objs\insufficient-nodes-in-root-to-leaf-paths-test\windows\x64\test\insufficient-nodes-in-root-to-leaf-paths\debugTreeNode.ixx.obj
debugTreeNode.ixx
[  0%]: generating.module.deps insufficient-nodes-in-root-to-leaf-paths\index.ixx
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\bin\HostX64\x64\cl.exe -nologo -std:c++20 -D__TEST__ /EHsc -external:W0 -external:IC:\Users\Administrator\Documents\vcpkg-master\installed\x64-windows-static\include -experimental:module -TP -scanDependencies build\.gens\insufficient-nodes-in-root-to-leaf-paths-test\windows\x64\test\rules\modules\cache\2f7477b1\index.ixx.module.json insufficient-nodes-in-root-to-leaf-paths\index.ixx -ifcOutput build\.gens\insufficient-nodes-in-root-to-leaf-paths-test\windows\x64\test\rules\modules\cache\2f7477b1 -Fobuild\.objs\insufficient-nodes-in-root-to-leaf-paths-test\windows\x64\test\insufficient-nodes-in-root-to-leaf-paths\index.ixx.obj
index.ixx
[  0%]: generating.module.deps insufficient-nodes-in-root-to-leaf-paths\test.cpp
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\bin\HostX64\x64\cl.exe -nologo -std:c++20 -D__TEST__ /EHsc -external:W0 -external:IC:\Users\Administrator\Documents\vcpkg-master\installed\x64-windows-static\include -experimental:module -TP -scanDependencies build\.gens\insufficient-nodes-in-root-to-leaf-paths-test\windows\x64\test\rules\modules\cache\2f7477b1\test.cpp.module.json insufficient-nodes-in-root-to-leaf-paths\test.cpp -ifcOutput build\.gens\insufficient-nodes-in-root-to-leaf-paths-test\windows\x64\test\rules\modules\cache\2f7477b1 -Fobuild\.objs\insufficient-nodes-in-root-to-leaf-paths-test\windows\x64\test\insufficient-nodes-in-root-to-leaf-paths\test.cpp.obj
test.cpp
[  0%]: generating.module.deps leetcode-treenode-cpp\bfsTravelsal.ixx
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\bin\HostX64\x64\cl.exe -nologo -std:c++20 -D__TEST__ /EHsc -external:W0 -external:IC:\Users\Administrator\Documents\vcpkg-master\installed\x64-windows-static\include -experimental:module -TP -scanDependencies build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\cd9c01bf\bfsTravelsal.ixx.module.json leetcode-treenode-cpp\bfsTravelsal.ixx -ifcOutput build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\cd9c01bf -Fobuild\.objs\insufficient-nodes-in-root-to-leaf-paths-test\windows\x64\test\leetcode-treenode-cpp\bfsTravelsal.ixx.obj
bfsTravelsal.ixx
[  0%]: generating.module.deps leetcode-treenode-cpp\freeTreeNode.ixx
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\bin\HostX64\x64\cl.exe -nologo -std:c++20 -D__TEST__ /EHsc -external:W0 -external:IC:\Users\Administrator\Documents\vcpkg-master\installed\x64-windows-static\include -experimental:module -TP -scanDependencies build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\cd9c01bf\freeTreeNode.ixx.module.json leetcode-treenode-cpp\freeTreeNode.ixx -ifcOutput build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\cd9c01bf -Fobuild\.objs\insufficient-nodes-in-root-to-leaf-paths-test\windows\x64\test\leetcode-treenode-cpp\freeTreeNode.ixx.obj
freeTreeNode.ixx
[  0%]: generating.module.deps leetcode-treenode-cpp\LeetCodeTreeNodeToString.ixx
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\bin\HostX64\x64\cl.exe -nologo -std:c++20 -D__TEST__ /EHsc -external:W0 -external:IC:\Users\Administrator\Documents\vcpkg-master\installed\x64-windows-static\include -experimental:module -TP -scanDependencies build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\cd9c01bf\LeetCodeTreeNodeToString.ixx.module.json leetcode-treenode-cpp\LeetCodeTreeNodeToString.ixx -ifcOutput build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\cd9c01bf -Fobuild\.objs\insufficient-nodes-in-root-to-leaf-paths-test\windows\x64\test\leetcode-treenode-cpp\LeetCodeTreeNodeToString.ixx.obj
LeetCodeTreeNodeToString.ixx
[  0%]: generating.module.deps leetcode-treenode-cpp\parseLeetCodeBinaryTree.ixx
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\bin\HostX64\x64\cl.exe -nologo -std:c++20 -D__TEST__ /EHsc -external:W0 -external:IC:\Users\Administrator\Documents\vcpkg-master\installed\x64-windows-static\include -experimental:module -TP -scanDependencies build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\cd9c01bf\parseLeetCodeBinaryTree.ixx.module.json leetcode-treenode-cpp\parseLeetCodeBinaryTree.ixx -ifcOutput build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\cd9c01bf -Fobuild\.objs\insufficient-nodes-in-root-to-leaf-paths-test\windows\x64\test\leetcode-treenode-cpp\parseLeetCodeBinaryTree.ixx.obj
parseLeetCodeBinaryTree.ixx
[  0%]: generating.module.deps leetcode-treenode-cpp\serializeTreeNode.ixx
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\bin\HostX64\x64\cl.exe -nologo -std:c++20 -D__TEST__ /EHsc -external:W0 -external:IC:\Users\Administrator\Documents\vcpkg-master\installed\x64-windows-static\include -experimental:module -TP -scanDependencies build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\cd9c01bf\serializeTreeNode.ixx.module.json leetcode-treenode-cpp\serializeTreeNode.ixx -ifcOutput build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\cd9c01bf -Fobuild\.objs\insufficient-nodes-in-root-to-leaf-paths-test\windows\x64\test\leetcode-treenode-cpp\serializeTreeNode.ixx.obj
serializeTreeNode.ixx
[  0%]: generating.module.deps leetcode-treenode-cpp\traversalTreeNode.ixx
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\bin\HostX64\x64\cl.exe -nologo -std:c++20 -D__TEST__ /EHsc -external:W0 -external:IC:\Users\Administrator\Documents\vcpkg-master\installed\x64-windows-static\include -experimental:module -TP -scanDependencies build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\cd9c01bf\traversalTreeNode.ixx.module.json leetcode-treenode-cpp\traversalTreeNode.ixx -ifcOutput build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\cd9c01bf -Fobuild\.objs\insufficient-nodes-in-root-to-leaf-paths-test\windows\x64\test\leetcode-treenode-cpp\traversalTreeNode.ixx.obj
traversalTreeNode.ixx
[  0%]: generating.module.deps leetcode-treenode-cpp\TreeNode.ixx
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\bin\HostX64\x64\cl.exe -nologo -std:c++20 -D__TEST__ /EHsc -external:W0 -external:IC:\Users\Administrator\Documents\vcpkg-master\installed\x64-windows-static\include -experimental:module -TP -scanDependencies build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\cd9c01bf\TreeNode.ixx.module.json leetcode-treenode-cpp\TreeNode.ixx -ifcOutput build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\cd9c01bf -Fobuild\.objs\insufficient-nodes-in-root-to-leaf-paths-test\windows\x64\test\leetcode-treenode-cpp\TreeNode.ixx.obj
TreeNode.ixx
[  7%]: generating.module.metadata leetcode_test.design_linked_list.MyLinkedList
[  8%]: compiling.module.test leetcode_test.design_linked_list.MyLinkedList
"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.35.32215\\bin\\HostX64\\x64\\cl.exe" -c -TP -nologo -std:c++20 -D__TEST__ /EHsc -external:W0 -external:IC:\Users\Administrator\Documents\vcpkg-master\installed\x64-windows-static\include -experimental:module -TP -ifcOutput build\.gens\design-linked-list\windows\x64\test\rules\modules\cache\652f18b9\leetcode_test.design_linked_list.MyLinkedList.ifc -interface -Fobuild\.objs\design-linked-list\windows\x64\test\design-linked-list\index.ixx.obj design-linked-list\index.ixx
[  8%]: compiling.module.test leetcode_test.split_a_circular_linked_list.ListNode
"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.35.32215\\bin\\HostX64\\x64\\cl.exe" -c -TP -nologo -std:c++20 -D__TEST__ /EHsc -external:W0 -external:IC:\Users\Administrator\Documents\vcpkg-master\installed\x64-windows-static\include -experimental:module -TP -ifcOutput build\.gens\split-a-circular-linked-list-test\windows\x64\test\rules\modules\cache\f3d65670\leetcode_test.split_a_circular_linked_list.ListNode.ifc -interface -Fobuild\.objs\split-a-circular-linked-list-test\windows\x64\test\split-a-circular-linked-list\ListNode.ixx.obj split-a-circular-linked-list\ListNode.ixx
[  8%]: compiling.module.test leetcode_test.check_if_it_is_a_good_array.Solution
"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.35.32215\\bin\\HostX64\\x64\\cl.exe" -c -TP -nologo -std:c++20 /EHsc -external:W0 -external:IC:\Users\Administrator\Documents\vcpkg-master\installed\x64-windows-static\include -experimental:module -TP -ifcOutput build\.gens\check-if-it-is-a-good-array-test\windows\x64\test\rules\modules\cache\3e4bb2cd\leetcode_test.check_if_it_is_a_good_array.Solution.ifc -interface -Fobuild\.objs\check-if-it-is-a-good-array-test\windows\x64\test\check-if-it-is-a-good-array\index.ixx.obj check-if-it-is-a-good-array\index.ixx
[  8%]: generating.module.metadata leetcode_treenode_cpp.TreeNode
[  9%]: generating.module.metadata leetcode_treenode_cpp.traversalTreeNode
[ 10%]: generating.module.metadata leetcode_treenode_cpp.serializeTreeNode
[ 11%]: generating.module.metadata leetcode_treenode_cpp.freeTreeNode
[ 12%]: generating.module.metadata leetcode_treenode_cpp.parseLeetCodeBinaryTree
[ 13%]: generating.module.metadata leetcode_treenode_cpp.bfsTravelsal
[ 14%]: generating.module.metadata leetcode_treenode_cpp.LeetCodeTreeNodeToString
[ 15%]: compiling.module.test leetcode_treenode_cpp.TreeNode
"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.35.32215\\bin\\HostX64\\x64\\cl.exe" -c -TP -nologo -std:c++20 -D__TEST__ /EHsc -external:W0 -external:IC:\Users\Administrator\Documents\vcpkg-master\installed\x64-windows-static\include -experimental:module -TP -ifcOutput build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\cd9c01bf\leetcode_treenode_cpp.TreeNode.ifc -interface -Fobuild\.objs\leetcode-treenode-cpp\windows\x64\test\leetcode-treenode-cpp\TreeNode.ixx.obj leetcode-treenode-cpp\TreeNode.ixx
[ 15%]: compiling.module.test leetcode_treenode_cpp.TreeNode
"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.35.32215\\bin\\HostX64\\x64\\cl.exe" -c -TP -nologo -std:c++20 -D__TEST__ /EHsc -external:W0 -external:IC:\Users\Administrator\Documents\vcpkg-master\installed\x64-windows-static\include -experimental:module -TP -ifcOutput build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\cd9c01bf\leetcode_treenode_cpp.TreeNode.ifc -interface -Fobuild\.objs\insert-into-a-binary-search-tree-test\windows\x64\test\leetcode-treenode-cpp\TreeNode.ixx.obj leetcode-treenode-cpp\TreeNode.ixx
[ 15%]: compiling.module.test leetcode_test.fibonacci_number.Solution
"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.35.32215\\bin\\HostX64\\x64\\cl.exe" -c -TP -nologo -std:c++20 /EHsc -external:W0 -external:IC:\Users\Administrator\Documents\vcpkg-master\installed\x64-windows-static\include -experimental:module -TP -ifcOutput build\.gens\ibonacci-number-test\windows\x64\test\rules\modules\cache\6e2af2a3\leetcode_test.fibonacci_number.Solution.ifc -interface -Fobuild\.objs\ibonacci-number-test\windows\x64\test\fibonacci-number\index.ixx.obj fibonacci-number\index.ixx
[ 15%]: compiling.module.test leetcode_treenode_cpp.TreeNode
"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.35.32215\\bin\\HostX64\\x64\\cl.exe" -c -TP -nologo -std:c++20 -D__TEST__ /EHsc -external:W0 -external:IC:\Users\Administrator\Documents\vcpkg-master\installed\x64-windows-static\include -experimental:module -TP -ifcOutput build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\cd9c01bf\leetcode_treenode_cpp.TreeNode.ifc -interface -Fobuild\.objs\insufficient-nodes-in-root-to-leaf-paths-test\windows\x64\test\leetcode-treenode-cpp\TreeNode.ixx.obj leetcode-treenode-cpp\TreeNode.ixx
checking for flags (cl_sourceDependencies) ... ok
> cl.exe "/sourceDependencies" "C:\Users\Administrator\AppData\Local\Temp\.xmake\230515\_915BF03C14884F60810FE81B09ECEFB0.json" "-nologo"
error: @programdir\modules\private\async\runjobs.lua:256: @programdir\rules\c++\modules\modules_support\msvc.lua:124: @programdir\modules\core\tools\cl.lua:649: TreeNode.ixx
leetcode-treenode-cpp\TreeNode.ixx(40): error C3474: 无法打开输出文件“build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\cd9c01bf\leetcode_treenode_cpp.TreeNode.ifc”

stack traceback:
    [C]: in function 'error'
    [@programdir\core\base\os.lua:913]:
    [@programdir\modules\core\tools\cl.lua:649]: in function 'catch'
    [@programdir\core\sandbox\modules\try.lua:123]: in function 'try'
    [@programdir\modules\core\tools\cl.lua:588]:
    [C]: in function 'xpcall'
    [@programdir\core\base\utils.lua:280]:
    [@programdir\core\tool\compiler.lua:278]: in function 'compile'
    [@programdir\rules\c++\modules\modules_support\msvc.lua:124]: in function '_build_modulefile'
    [@programdir\rules\c++\modules\modules_support\msvc.lua:476]: in function 'jobfunc'
    [@programdir\modules\private\async\runjobs.lua:232]:
    [C]: in function 'xpcall'
    [@programdir\core\base\utils.lua:280]: in function 'trycall'
    [@programdir\core\sandbox\modules\try.lua:117]: in function 'try'
    [@programdir\modules\private\async\runjobs.lua:218]: in function 'cotask'
    [@programdir\core\base\scheduler.lua:404]:

stack traceback:
        [C]: in function 'error'
        @programdir\core\base\os.lua:913: in function 'base/os.raiselevel'
        (...tail calls...)
        @programdir\modules\private\async\runjobs.lua:256: in field 'catch'
        @programdir\core\sandbox\modules\try.lua:123: in global 'try'
        @programdir\modules\private\async\runjobs.lua:218: in upvalue 'cotask'
        @programdir\core\base\scheduler.lua:404: in function <@programdir\core\base\scheduler.lua:397>
@masx200 masx200 added the bug label May 15, 2023
@waruqi
Copy link
Member

waruqi commented May 16, 2023

我有三个子项目都用到了同一个文件,这个文件被编译三次是不是不应该?

如果在不同 target 中添加的,当然得重新编译,每个 target 的配置 编译 flags 不一定完全一致,即使完全一致,也是独立的。正常

leetcode-treenode-cpp\TreeNode.ixx(40): error C3474: 无法打开输出文件“build.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\cd9c01bf\leetcode_treenode_cpp.TreeNode.ifc”

只要看到 无法打开文件。。路径有比较长的,并且其他平台没问题的,通常都是 win 长路径限制,跟 msvc 没啥关系。。自己改短下

@masx200
Copy link
Author

masx200 commented May 16, 2023

但是这个文件长度147并没有超过260?

C:\leetcode-test\build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\cd9c01bf\leetcode_treenode_cpp.TreeNode.ifc

@waruqi
Copy link
Member

waruqi commented May 16, 2023

C:\leetcode-test\build

你上面的 ci 跑的,也是这个根目录?我不记得 ci 上默认 clone 会 clone 到 C: root 下

@masx200
Copy link
Author

masx200 commented May 16, 2023

C:\leetcode-test\build

你上面的 ci 跑的,也是这个根目录?我不记得 ci 上默认 clone 会 clone 到 C: root 下

我在我的电脑上也跑了,一样结果

@waruqi
Copy link
Member

waruqi commented May 16, 2023

C:\leetcode-test\build

你上面的 ci 跑的,也是这个根目录?我不记得 ci 上默认 clone 会 clone 到 C: root 下

我在我的电脑上也跑了,一样结果

那就不知道了,通常这种就是长度限制,你可以再改短下试试,insert-into-a-binary-search-tree-test 比如改成 xxx 试试

另外,报错后 看下,C:\leetcode-test\build\.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\cd9c01bf\ 目录是否存在

@masx200
Copy link
Author

masx200 commented May 16, 2023

我试了一下,这个目录确实存在

C:\leetcode-test\build.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\cd9c01bf\

@waruqi
Copy link
Member

waruqi commented May 16, 2023

那这个多半还是长路径的问题,而且这个是 msvc 里面报出来的。。不是 xmake 。。如果是在 xmake 内部,会自动处理部分长路径的限制去绕过,但是 cl.exe 里面。xmake 改不了。。

这个要么就是继续改短路径试试,没其他办法。。或者可以到微软那边反馈下。

@masx200
Copy link
Author

masx200 commented May 17, 2023

我发现有时候又不会出错,该不会是概率性事件?

@masx200
Copy link
Author

masx200 commented May 18, 2023

我想明白了,原因应该是并行编译导致三个进程访问了同一个文件,所以报错,是不是应该使用加锁的方法,避免资源竞争

@waruqi
Copy link
Member

waruqi commented May 18, 2023

无法加锁,你可以调下这里。

local key = path.directory(modulepath) .. target:name()

按理不同 target 编译相同 modules files 。。module hash 应该不同 (cd9c01bf),不应该是相同路径。。

build.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\cd9c01bf\leetcode_treenode_cpp.TreeNode.ifc

@masx200
Copy link
Author

masx200 commented May 18, 2023

经过我的测试确实是并行编译的问题,指定-j 1就没有报错了,实锤了

@waruqi
Copy link
Member

waruqi commented May 18, 2023

经过我的测试确实是并行编译的问题,指定-j 1就没有报错了,实锤了

你刚不已经说过了么。我是说按上面我说的,调下,看看为什么会生成三个相同路径 ifc path

@masx200
Copy link
Author

masx200 commented May 18, 2023

应该不是这个key的问题,这三个key并没有一样

[ 39%]: generating.module.metadata leetcode_treenode_cpp.TreeNode
key:leetcode-treenode-cppleetcode-treenode-cpp,target:leetcode-treenode-cpp,modulepath:leetcode-treenode-cpp\TreeNode.ixx
[  0%]: generating.module.deps leetcode-treenode-cpp\TreeNode.ixx
key:leetcode-treenode-cppinsert-into-a-binary-search-tree-test,target:insert-into-a-binary-search-tree-test,modulepath:leetcode-treenode-cpp\TreeNode.ixx
[ 14%]: generating.module.metadata leetcode_treenode_cpp.TreeNode
key:leetcode-treenode-cppleetcode-test,target:leetcode-test,modulepath:leetcode-treenode-cpp\TreeNode.ixx

这个key是在generating.module.metadata阶段,但是问题发生在compiling.module.test阶段

@waruqi
Copy link
Member

waruqi commented May 18, 2023

build.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\cd9c01bf\leetcode_treenode_cpp.TreeNode.ifc
build.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\cd9c01bf\leetcode_treenode_cpp.TreeNode.ifc
build.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\cd9c01bf\leetcode_treenode_cpp.TreeNode.ifc

看你上面的 logs,三次编译,是在三个 target 下,对应的 obj 都是不同路径,但是 ifc output 路径却是上面三个相同路径,都是 cd9c01bf 这个 modulehash ,所以得调下 为什么是相同 hash 。。

build.objs\leetcode-treenode-cpp\windows\x64\test\leetcode-treenode-cpp\TreeNode.ixx.obj
build.objs\insert-into-a-binary-search-tree-test\windows\x64\test\leetcode-treenode-cpp\TreeNode.ixx.obj
build.objs\insufficient-nodes-in-root-to-leaf-paths-test\windows\x64\test\leetcode-treenode-cpp\TreeNode.ixx.obj

但是问题发生在compiling.module.test阶段

我说的就是这个阶段

[ 15%]: compiling.module.test leetcode_treenode_cpp.TreeNode
"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\bin\HostX64\x64\cl.exe" -c -TP -nologo -std:c++20 -D__TEST__ /EHsc -external:W0 -external:IC:\Users\Administrator\Documents\vcpkg-master\installed\x64-windows-static\include -experimental:module -TP -ifcOutput build.gens\insert-into-a-binary-search-tree-test\windows\x64\test\rules\modules\cache\cd9c01bf\leetcode_treenode_cpp.TreeNode.ifc -interface -Fobuild.objs\insufficient-nodes-in-root-to-leaf-paths-test\windows\x64\test\leetcode-treenode-cpp\TreeNode.ixx.obj leetcode-treenode-cpp\TreeNode.ixx

waruqi added a commit that referenced this issue May 24, 2023
@waruqi
Copy link
Member

waruqi commented May 24, 2023

我修复了,更新下试试,xmake update -s dev

@Issues-translate-bot
Copy link

Bot detected the issue body's language is not English, translate it automatically.


I fixed it, try updating it, xmake update -s dev

@masx200 masx200 closed this as completed May 24, 2023
@waruqi waruqi added this to the v2.8.1 milestone May 24, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants