Closed
Description
module;
#include <concepts>
export module Services:Service;
module;
#include <iostream>
export module Log;
Results in this error
D:\VisualStudio\VC\Tools\MSVC\14.34.31933\include\vcruntime_new.h:27:16: error: 'std::align_val_t' has different definitions in different modules; definition in module 'Log.<global>' first difference is enum with specified type 'size_t' (aka 'unsigned long long')
enum class align_val_t : size_t {};
~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
D:\VisualStudio\VC\Tools\MSVC\14.34.31933\include\vcruntime_new.h:27:16: note: but in 'Services:Service.<global>' found enum with specified type 'size_t' (aka 'unsigned long long')
enum class align_val_t : size_t {};
~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
Both headers at one point include vcruntime_new.h
header.
No using namespace std;
used.
Obviously, definitions are not different, they're just not removed by clang when building tree.
I used these commands to build
[PCM] clang++ -std=c++20 -fmodules -g -O0 -Wall -DPLATFORM_WINDOWS
-fprebuilt-module-path=D:\UnixProjects\General\Bismuth\BismuthEngine\Intermediate\Modules
D:\UnixProjects\General\Bismuth\BismuthEngine\Intermediate\Modules\Engine.lib
D:\UnixProjects\General\Bismuth\BismuthEngine\Intermediate\Modules\Services.lib
D:\UnixProjects\General\Bismuth\BismuthEngine\Intermediate\Modules\Engine.lib
D:\UnixProjects\General\Bismuth\BismuthEngine\Intermediate\Modules\Services.lib
--precompile D:\UnixProjects\General\Bismuth\BismuthEngine\Source\Engine\Application\Application.cppm
-o D:\UnixProjects\General\Bismuth\BismuthEngine\Intermediate\Modules\Application.pcm
[LIB] clang++ -std=c++20 -fmodules -g -O0 -Wall -DPLATFORM_WINDOWS
-fprebuilt-module-path=D:\UnixProjects\General\Bismuth\BismuthEngine\Intermediate\Modules
D:\UnixProjects\General\Bismuth\BismuthEngine\Intermediate\Modules\Engine.lib
D:\UnixProjects\General\Bismuth\BismuthEngine\Intermediate\Modules\Services.lib
D:\UnixProjects\General\Bismuth\BismuthEngine\Intermediate\Modules\Engine.lib
D:\UnixProjects\General\Bismuth\BismuthEngine\Intermediate\Modules\Services.lib
-c D:\UnixProjects\General\Bismuth\BismuthEngine\Source\Engine\Application\Application.cppm
-o D:\UnixProjects\General\Bismuth\BismuthEngine\Intermediate\Modules\Application_temp\Application_interface.obj
[LINKER] lld-link /lib D:\UnixProjects\General\Bismuth\BismuthEngine\Intermediate\Modules\Engine.lib
D:\UnixProjects\General\Bismuth\BismuthEngine\Intermediate\Modules\Services.lib
/out:D:\UnixProjects\General\Bismuth\BismuthEngine\Intermediate\Modules\Application.lib