Skip to content

c++ duplicate module detected #6401

@YihanWang-Dev

Description

@YihanWang-Dev

Xmake 版本

xmake v2.9.9+dev.a6af349ad

操作系统版本和架构

Widows 11 24H2

描述问题

使用分区模块声明和实现分离被视为重复模组

期待的结果

fix

工程配置

最小复现.zip

附加信息和错误日志

checking for platform ... windows
checking for architecture ... x64
checking for cl.exe ... E:\env\vs\2022Preview\VC\Tools\MSVC\14.44.34918\bin\HostX64\x64\cl.exe
checking for Microsoft Visual Studio (x64) version ... 2022
checking for Microsoft C/C++ Compiler (x64) version ... 19.44.34918.1
checkinfo: cannot runv(nim.exe --version), No such file or directory
checking for nim ... no
checkinfo: cannot runv(nim.exe --version), No such file or directory
checking for nim ... no
checking for cl.exe ... E:\env\vs\2022Preview\VC\Tools\MSVC\14.44.34918\bin\HostX64\x64\cl.exe
checking for the c++ compiler (cxx) ... cl.exe
checking for link.exe ... E:\env\vs\2022Preview\VC\Tools\MSVC\14.44.34918\bin\HostX64\x64\link.exe
checking for the linker (ld) ... link.exe
checking for E:\env\vs\2022Preview\VC\Tools\MSVC\14.44.34918\bin\HostX64\x64\cl.exe ... ok
checking for flags (cl_scan_dependencies) ... ok

cl.exe "-scanDependencies" "C:\Users\ADMINI1\AppData\Local\Temp.xmake\250507_1A036D46184E4E10827C960CAE62B940.json" "-nologo"
checking for flags (cl_ifc_output) ... ok
cl.exe "-ifcOutput" "C:\Users\ADMINI
1\AppData\Local\Temp.xmake\250507_3F394DD9A15144608B96D8D4EF883560" "-nologo"
checking for flags (-O2) ... ok
cl.exe "-O2" "-nologo"
checking for flags (-DNDEBUG) ... ok
cl.exe "-DNDEBUG" "-nologo"
[ 0%]: generating.module.deps math.mpp
E:\env\vs\2022Preview\VC\Tools\MSVC\14.44.34918\bin\HostX64\x64\cl.exe -nologo -O2 -std:c++latest -Ibuild.gens\test\windows\x64\release\platform\windows\idl /EHsc -DNDEBUG -TP -scanDependencies build.gens\test\windows\x64\release\rules\bmi\cache\modules\574a3743\math.mpp.module.json math.mpp -ifcOutput build.gens\test\windows\x64\release\rules\bmi\cache\modules\574a3743 -Fobuild.objs\test\windows\x64\release\math.mpp.obj
math.mpp
[ 0%]: generating.module.deps pa.mpp
E:\env\vs\2022Preview\VC\Tools\MSVC\14.44.34918\bin\HostX64\x64\cl.exe -nologo -O2 -std:c++latest -Ibuild.gens\test\windows\x64\release\platform\windows\idl /EHsc -DNDEBUG -TP -scanDependencies build.gens\test\windows\x64\release\rules\bmi\cache\modules\574a3743\pa.mpp.module.json pa.mpp -ifcOutput build.gens\test\windows\x64\release\rules\bmi\cache\modules\574a3743 -Fobuild.objs\test\windows\x64\release\pa.mpp.obj
[ 0%]: generating.module.deps pb.mpp
E:\env\vs\2022Preview\VC\Tools\MSVC\14.44.34918\bin\HostX64\x64\cl.exe -nologo -O2 -std:c++latest -Ibuild.gens\test\windows\x64\release\platform\windows\idl /EHsc -DNDEBUG -TP -scanDependencies build.gens\test\windows\x64\release\rules\bmi\cache\modules\574a3743\pb.mpp.module.json pb.mpp -ifcOutput build.gens\test\windows\x64\release\rules\bmi\cache\modules\574a3743 -Fobuild.objs\test\windows\x64\release\pb.mpp.obj
[ 0%]: generating.module.deps pa.cpp
E:\env\vs\2022Preview\VC\Tools\MSVC\14.44.34918\bin\HostX64\x64\cl.exe -nologo -O2 -std:c++latest -Ibuild.gens\test\windows\x64\release\platform\windows\idl /EHsc -DNDEBUG -TP -scanDependencies build.gens\test\windows\x64\release\rules\bmi\cache\modules\574a3743\pa.cpp.module.json pa.cpp -ifcOutput build.gens\test\windows\x64\release\rules\bmi\cache\modules\574a3743 -Fobuild.objs\test\windows\x64\release\pa.cpp.obj
[ 0%]: generating.module.deps main.cpp
E:\env\vs\2022Preview\VC\Tools\MSVC\14.44.34918\bin\HostX64\x64\cl.exe -nologo -O2 -std:c++latest -Ibuild.gens\test\windows\x64\release\platform\windows\idl /EHsc -DNDEBUG -TP -scanDependencies build.gens\test\windows\x64\release\rules\bmi\cache\modules\574a3743\main.cpp.module.json main.cpp -ifcOutput build.gens\test\windows\x64\release\rules\bmi\cache\modules\574a3743 -Fobuild.objs\test\windows\x64\release\main.cpp.obj
[ 0%]: generating.module.deps E:\env\vs\2022Preview\VC\Tools\MSVC\14.44.34918\modules\std.compat.ixx
E:\env\vs\2022Preview\VC\Tools\MSVC\14.44.34918\bin\HostX64\x64\cl.exe -nologo -O2 -std:c++latest -Ibuild.gens\test\windows\x64\release\platform\windows\idl /EHsc -DNDEBUG -TP -scanDependencies build.gens\test\windows\x64\release\rules\bmi\cache\modules\c3a8d9c8\std.compat.ixx.module.json E:\env\vs\2022Preview\VC\Tools\MSVC\14.44.34918\modules\std.compat.ixx -ifcOutput build.gens\test\windows\x64\release\rules\bmi\cache\modules\c3a8d9c8 -Fobuild.objs\test\windows\x64\release\144263530a6a4a27a9b1a36a386c56bf\std.compat.ixx.obj
pa.mpp
[ 0%]: generating.module.deps pb.cpp
E:\env\vs\2022Preview\VC\Tools\MSVC\14.44.34918\bin\HostX64\x64\cl.exe -nologo -O2 -std:c++latest -Ibuild.gens\test\windows\x64\release\platform\windows\idl /EHsc -DNDEBUG -TP -scanDependencies build.gens\test\windows\x64\release\rules\bmi\cache\modules\574a3743\pb.cpp.module.json pb.cpp -ifcOutput build.gens\test\windows\x64\release\rules\bmi\cache\modules\574a3743 -Fobuild.objs\test\windows\x64\release\pb.cpp.obj
pb.mpp
[ 0%]: generating.module.deps E:\env\vs\2022Preview\VC\Tools\MSVC\14.44.34918\modules\std.ixx
E:\env\vs\2022Preview\VC\Tools\MSVC\14.44.34918\bin\HostX64\x64\cl.exe -nologo -O2 -std:c++latest -Ibuild.gens\test\windows\x64\release\platform\windows\idl /EHsc -DNDEBUG -TP -scanDependencies build.gens\test\windows\x64\release\rules\bmi\cache\modules\c3a8d9c8\std.ixx.module.json E:\env\vs\2022Preview\VC\Tools\MSVC\14.44.34918\modules\std.ixx -ifcOutput build.gens\test\windows\x64\release\rules\bmi\cache\modules\c3a8d9c8 -Fobuild.objs\test\windows\x64\release\144263530a6a4a27a9b1a36a386c56bf\std.ixx.obj
main.cpp
pa.cpp
std.compat.ixx
pb.cpp
std.ixx
error: @programdir\core\main.lua:329: @programdir\core\sandbox\modules\import\core\base\task.lua:65: ...+\modules\modules_support\msvc..\dependency_scanner.lua:186: duplicate module name detected "math:pa"
-> pa.cpp
-> pa.mpp
stack traceback:
[C]: in function 'error'
[@programdir\core\base\os.lua:1075]:
[...+\modules\modules_support\msvc..\dependency_scanner.lua:186]: in function '_get_edges'
[...+\modules\modules_support\msvc..\dependency_scanner.lua:413]: in function 'sort_modules_by_dependencies'
[@programdir\rules\c++\modules\xmake.lua:173]: in function 'script'
[@programdir\plugins\project\utils\target_cmds.lua:80]: in function 'get_target_buildcmd_files'
[@programdir\plugins\project\utils\target_cmds.lua:111]: in function 'get_target_buildcmd_sourcegroups'
[@programdir\plugins\project\clang\compile_commands.lua:252]: in function '_add_target_commands'
[@programdir\plugins\project\clang\compile_commands.lua:284]: in function '_add_target'
[@programdir\plugins\project\clang\compile_commands.lua:297]: in function '_add_targets'
[@programdir\plugins\project\clang\compile_commands.lua:320]: in function '?'
[@programdir\plugins\project\main.lua:75]: in function '_make'
[@programdir\plugins\project\main.lua:95]:
[C]: in function 'xpcall'
[@programdir\core\base\utils.lua:246]:
[@programdir\core\base\task.lua:504]: in function 'run'
[@programdir\core\sandbox\modules\import\core\base\task.lua:63]: in function 'run'
[@programdir\rules\plugin\compile_commands\xmake.lua:66]: in function 'callback'
[@programdir\modules\core\project\depend.lua:227]: in function 'on_changed'
[@programdir\rules\plugin\compile_commands\xmake.lua:62]: in function 'buildscript'
[@programdir\actions\build\main.lua:97]: in function '_do_project_rules'
[@programdir\actions\build\main.lua:144]: in function 'catch'
[@programdir\core\sandbox\modules\try.lua:123]: in function 'try'
[@programdir\actions\build\main.lua:119]: in function 'build_targets'
[@programdir\actions\build\main.lua:201]:
[C]: in function 'xpcall'
[@programdir\core\base\utils.lua:246]:
[@programdir\core\base\task.lua:504]: in function 'run'
[@programdir\core\main.lua:327]: in function 'cotask'
[@programdir\core\base\scheduler.lua:406]:

stack traceback:
[C]: in function 'error'
@programdir\core\base\os.lua:1075: in function 'base/os.raiselevel'
(...tail calls...)
@programdir\core\main.lua:329: in upvalue 'cotask'
@programdir\core\base\scheduler.lua:406: in function <@programdir\core\base\scheduler.lua:399>

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions