Giter VIP home page Giter VIP logo

Comments (34)

Arthapz avatar Arthapz commented on June 4, 2024 1

If you reorganize the module interface of a and put all definitions into the module partition interface unit .ixx, then in b, these definitions will be compiled again

it's not the case anymore because of this PR #4814

I still hope to be able to support .cpp files as module partition implementation units.

yes we should support it but in your example you have a interface partition unit and an implementation partition unit with the same name, it is not allowed
and if an implementation partition unit is imported by a public interface partition unit, you should distribute (and the consumer need to build) the implementation partition unit

you can also implement your functions like this

// Foo.ixx
export module Foo;

export import :Interface;
// Foo-Interface.ixx
export module Foo:Interface;

export void foo();
// Foo.cpp
module Foo;

void foo() {
    // work
}

so in your example u just need to remove the :Rectangle part of module BasicPlane.Figures:Rectangle; in your BasicPlane.Figures-Rectangle.cpp

from xmake.

Issues-translate-bot avatar Issues-translate-bot commented on June 4, 2024

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


Title: c++20module msvc supports module partition implementation unit

from xmake.

waruqi avatar waruqi commented on June 4, 2024

应该支持的,参考:https://github.com/xmake-io/xmake/tree/master/tests/projects/c%2B%2B/modules/partitions2

from xmake.

Issues-translate-bot avatar Issues-translate-bot commented on June 4, 2024

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


It should be supported, refer to: https://github.com/xmake-io/xmake/tree/master/tests/projects/c%2B%2B/modules/partitions2

from xmake.

dayu521 avatar dayu521 commented on June 4, 2024

应该支持的,参考:https://github.com/xmake-io/xmake/tree/master/tests/projects/c%2B%2B/modules/partitions2

是的,这里是支持的.但它的用法是只有模块分区接口单元mpp,且实现放到mpp文件中.

我希望的用法是

  • 一个模块分区接口单元a.mpp
  • 然后对应一个模块分区实现单元a.cpp

可以参考下上传的附件

from xmake.

Issues-translate-bot avatar Issues-translate-bot commented on June 4, 2024

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


Should be supported, refer to: https://github.com/xmake-io/xmake/tree/master/tests/projects/c%2B%2B/modules/partitions2

Yes, it is supported here. But its usage is that only the module partition interface unit mpp is implemented, and the implementation is placed in the mpp file.

My desired usage is

  • a module partition interface unit a.mpp
  • Then correspond to a module partition implementation unit a.cpp

You can refer to the attachments uploaded below.

from xmake.

waruqi avatar waruqi commented on June 4, 2024

目前是借助 msvc 的模块依赖分析,来处理的。。BasicPlane.Figures-Rectangle.cpp 没有任何分区模块依赖信息,xmake 没法在编译它的时候,设置相关的 ifc flags。

[  0%]: <foo> generating.module.deps BasicPlane.Figures-Rectangle.cpp
checking for flags (-O2 -fp:fast) ... ok
> cl.exe "-O2" "-fp:fast" "-nologo"
checking for flags (-std:c++20) ... ok
> cl.exe "-std:c++20" "-nologo"
checking for flags (-DNDEBUG) ... ok
> cl.exe "-DNDEBUG" "-nologo"
C:\Program Files\Microsoft Visual Studio\2022\Preview\VC\Tools\MSVC\14.40.33521\bin\HostX64\x64\cl.exe -nologo -O2 -fp:fast -std:c++20 -DNDEBUG -TP -scanDependencies build\.gens\foo\windows\x64\release\rules\bmi\cache\modules\3319d13e\BasicPlane.Figures-Rectangle.cpp.module.json BasicPlane.Figures-Rectangle.cpp -ifcOutput build\.gens\foo\windows\x64\release\rules\bmi\cache\modules\3319d13e -Fobuild\.objs\foo\windows\x64\release\BasicPlane.Figures-Rectangle.cpp.obj
BasicPlane.Figures-Rectangle.cpp
BasicPlane.Figures-Rectangle.cpp
{
    "version": 1,
    "revision": 0,
    "rules": [
        {
            "primary-output": "build\\.objs\\foo\\windows\\x64\\release\\BasicPlane.Figures-Rectangle.cpp.obj",
            "outputs": [
                "build\\.gens\\foo\\windows\\x64\\release\\rules\\bmi\\cache\\modules\\3319d13e\\BasicPlane.Figures-Rectangle.cpp.module.json",
                "build\\.gens\\foo\\windows\\x64\\release\\rules\\bmi\\cache\\modules\\3319d13e\\BasicPlane.Figures-Rectangle.ifc"
            ],
            "provides": [
                {
                    "logical-name": "BasicPlane.Figures:Rectangle",
                    "source-path": "c:\\users\\wangrunqing\\downloads\\msvc_module\\msvc_module\\basicplane.figures-rectangle.cpp",
                    "is-interface": false
                }
            ],
            "requires": []
        }
    ]
}

另外,我直接用 vs 编译,也是同样的错误,一样不支持,vs/msbuild 也不行

image

from xmake.

waruqi avatar waruqi commented on June 4, 2024

@Arthapz any idea?

from xmake.

dayu521 avatar dayu521 commented on June 4, 2024

@waruqi 我根据上面链接的教程中创建vs工程,是可以编译成功的

from xmake.

Issues-translate-bot avatar Issues-translate-bot commented on June 4, 2024

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


@waruqi I created a vs project based on the tutorial linked above and it can be compiled successfully.

from xmake.

waruqi avatar waruqi commented on June 4, 2024

你给下完整 vs 工程,我这边分析下

from xmake.

Issues-translate-bot avatar Issues-translate-bot commented on June 4, 2024

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


Please tell me complete vs. project, and I will analyze it here.

from xmake.

Arthapz avatar Arthapz commented on June 4, 2024

@Arthapz any idea?

Currently the module support in .cpp files is flawed, i didn't found a way to do it cleanly for now, only implementation modules work well

from xmake.

dayu521 avatar dayu521 commented on June 4, 2024

@waruqi
ModulesTutorial.zip

需要设置c++标准,具体教程里有提到

from xmake.

Issues-translate-bot avatar Issues-translate-bot commented on June 4, 2024

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


@waruqi
ModulesTutorial.zip

The c++ standard needs to be set, which is mentioned in the specific tutorial.

from xmake.

waruqi avatar waruqi commented on June 4, 2024

@Arthapz any idea?

Currently the module support in .cpp files is flawed, i didn't found a way to do it cleanly for now, only implementation modules work well

msbuild does not scan the cpp for module dependencies, it just adds all module ifc references to the cpp file.

# scan
cl.exe /c  /Zi /nologo /W3 /WX- /diagnostics:column /sdl /FS /O2 /Oi /GL /D NDEBUG /D _CONSOLE /D _UNICODE /D UNICODE /Gm- /EHsc /MD /GS /Gy /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /std:c++20 /permissive- /ifcOutput "build\BasicPlane.Figures.ixx.ifc" /scanDependencies "x64\Release\\" /Fo"x64\Release\BasicPlane.Figures.ixx.obj" /Fd"x64\Release\vc143.pdb" /external:W3 /Gd /interface /FC /errorReport:queue  /TP BasicPlane.Figures.ixx
cl.exe /c  /Zi /nologo /W3 /WX- /diagnostics:column /sdl /FS /O2 /Oi /GL /D NDEBUG /D _CONSOLE /D _UNICODE /D UNICODE /Gm- /EHsc /MD /GS /Gy /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /std:c++20 /permissive- /ifcOutput "build\BasicPlane.Figures-Rectangle.ixx.ifc" /scanDependencies "x64\Release\\" /Fo"x64\Release\BasicPlane.Figures-Rectangle.ixx.obj" /Fd"x64\Release\vc143.pdb" /external:W3 /Gd /interface /FC /errorReport:queue  /TP "BasicPlane.Figures-Rectangle.ixx"
cl.exe /c  /Zi /nologo /W3 /WX- /diagnostics:column /sdl /FS /O2 /Oi /GL /D NDEBUG /D _CONSOLE /D _UNICODE /D UNICODE /Gm- /EHsc /MD /GS /Gy /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /std:c++20 /permissive- /ifcOutput "build\BasicPlane.Figures-Point.ixx.ifc" /scanDependencies "x64\Release\\" /Fo"x64\Release\BasicPlane.Figures-Point.ixx.obj" /Fd"x64\Release\vc143.pdb" /external:W3 /Gd /interface /FC /errorReport:queue  /TP "BasicPlane.Figures-Point.ixx"
# compile
cl.exe /c  /Zi /nologo /W3 /WX- /diagnostics:column /sdl /FS /O2 /Oi /GL /D NDEBUG /D _CONSOLE /D _UNICODE /D UNICODE /Gm- /EHsc /MD /GS /Gy /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /std:c++20 /permissive- /ifcOutput "build\BasicPlane.Figures-Point.ixx.ifc" /Fo"x64\Release\BasicPlane.Figures-Point.ixx.obj" /Fd"x64\Release\vc143.pdb" /sourceDependencies "build\BasicPlane.Figures-Point.ixx.ifc.d.json" /external:W3 /Gd /interface /FC /errorReport:queue  /TP "BasicPlane.Figures-Point.ixx"
cl.exe /c  /reference "BasicPlane.Figures:Point=build\BasicPlane.Figures-Point.ixx.ifc" /Zi /nologo /W3 /WX- /diagnostics:column /sdl /FS /O2 /Oi /GL /D NDEBUG /D _CONSOLE /D _UNICODE /D UNICODE /Gm- /EHsc /MD /GS /Gy /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /std:c++20 /permissive- /ifcOutput "build\BasicPlane.Figures-Rectangle.ixx.ifc" /Fo"x64\Release\BasicPlane.Figures-Rectangle.ixx.obj" /Fd"x64\Release\vc143.pdb" /sourceDependencies "build\BasicPlane.Figures-Rectangle.ixx.ifc.d.json" /external:W3 /Gd /interface /FC /errorReport:queue  /TP "BasicPlane.Figures-Rectangle.ixx"
cl.exe /c  /reference "BasicPlane.Figures:Point=build\BasicPlane.Figures-Point.ixx.ifc" /reference "BasicPlane.Figures:Rectangle=build\BasicPlane.Figures-Rectangle.ixx.ifc" /Zi /nologo /W3 /WX- /diagnostics:column /sdl /FS /O2 /Oi /GL /D NDEBUG /D _CONSOLE /D _UNICODE /D UNICODE /Gm- /EHsc /MD /GS /Gy /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /std:c++20 /permissive- /ifcOutput "build\BasicPlane.Figures.ixx.ifc" /Fo"x64\Release\BasicPlane.Figures.ixx.obj" /Fd"x64\Release\vc143.pdb" /sourceDependencies "build\BasicPlane.Figures.ixx.ifc.d.json" /external:W3 /Gd /interface /FC /errorReport:queue  /TP BasicPlane.Figures.ixx
cl.exe /c  /reference "BasicPlane.Figures:Point=build\BasicPlane.Figures-Point.ixx.ifc" /reference "BasicPlane.Figures:Rectangle=build\BasicPlane.Figures-Rectangle.ixx.ifc" /reference BasicPlane.Figures=build\BasicPlane.Figures.ixx.ifc /Zi /nologo /W3 /WX- /diagnostics:column /sdl /O2 /Oi /GL /D NDEBUG /D _CONSOLE /D _UNICODE /D UNICODE /Gm- /EHsc /MD /GS /Gy /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /std:c++20 /permissive- /Fo"x64\Release\\" /Fd"x64\Release\vc143.pdb" /external:W3 /Gd /TP /FC /errorReport:queue "BasicPlane.Figures-Rectangle.cpp" ModulesTutorial.cpp
link.exe /ERRORREPORT:QUEUE /OUT:"C:\Users\wangrunqing\Downloads\ModulesTutorial\ModulesTutorial\x64\Release\ModulesTutorial.exe" /NOLOGO /LIBPATH:"D:\projects\personal\vcpkg\installed\x64-windows\lib" /LIBPATH:"D:\projects\personal\vcpkg\installed\x64-windows\lib\manual-link" kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib "D:\projects\personal\vcpkg\installed\x64-windows\lib\*.lib" /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /DEBUG /PDB:"C:\Users\wangrunqing\Downloads\ModulesTutorial\ModulesTutorial\x64\Release\ModulesTutorial.pdb" /SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /LTCG:incremental /LTCGOUT:"x64\Release\ModulesTutorial.iobj" /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"C:\Users\wangrunqing\Downloads\ModulesTutorial\ModulesTutorial\x64\Release\ModulesTutorial.lib" /MACHINE:X64 "x64\Release\BasicPlane.Figures-Rectangle.obj"

from xmake.

waruqi avatar waruqi commented on June 4, 2024

cmake 试了下,也不支持,目前看就 msvc 支持,而且它的支持方式比较怪,没有分析去 rectangle cpp 里面的模块,而是强行加所有模块的 ifc 添加到了 cpp 里面去。不确定这种支持是否合理。

目前我那个 patch 通过 hack 的方式去处理 deps,并不是很好,而且目前没有官方标准提到可以支持这种写法,暂时我先不支持了,如果你这非要这么写,可以按你之前说的方式 ,在 rectangle cpp 里面自己加下 import ,至少 msvc 下能过。

D:\projects\personal\xmake\tests\projects\c++\modules\partitions_implunit\build>cmake --build .
适用于 .NET Framework MSBuild 版本 17.10.0-preview-24081-01+97651a25d

  1>Checking Build System
  Building Custom Rule D:/projects/personal/xmake/tests/projects/c++/modules/partitions_implunit/CMakeLists.txt
  正在扫描源以查找模块依赖项...
  BasicPlane.Figures-Rectangle.cpp
  ModulesTutorial.cpp
  BasicPlane.Figures-Point.ixx
  BasicPlane.Figures-Rectangle.ixx
  BasicPlane.Figures.ixx
  正在编译...
  BasicPlane.Figures-Rectangle.cpp
  BasicPlane.Figures-Point.ixx
  BasicPlane.Figures-Rectangle.ixx
D:\projects\personal\xmake\tests\projects\c++\modules\partitions_implunit\BasicPlane.Figures-Rectangle.cpp(5,10): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int [D:\projects\
personal\xmake\tests\projects\c++\modules\partitions_implunit\build\foo.vcxproj]
D:\projects\personal\xmake\tests\projects\c++\modules\partitions_implunit\BasicPlane.Figures-Rectangle.cpp(5,25): error C2143: 语法错误: 缺少“,”(在“&”的前面) [D:\projects\personal\xmake\
tests\projects\c++\modules\partitions_implunit\build\foo.vcxproj]
D:\projects\personal\xmake\tests\projects\c++\modules\partitions_implunit\BasicPlane.Figures-Rectangle.cpp(5,45): error C2065: “r”: 未声明的标识符 [D:\projects\personal\xmake\tests\pr
ojects\c++\modules\partitions_implunit\build\foo.vcxproj]
D:\projects\personal\xmake\tests\projects\c++\modules\partitions_implunit\BasicPlane.Figures-Rectangle.cpp(5,39): error C3861: “width”: 找不到标识符 [D:\projects\personal\xmake\tests
\projects\c++\modules\partitions_implunit\build\foo.vcxproj]
D:\projects\personal\xmake\tests\projects\c++\modules\partitions_implunit\BasicPlane.Figures-Rectangle.cpp(5,57): error C2065: “r”: 未声明的标识符 [D:\projects\personal\xmake\tests\pr
ojects\c++\modules\partitions_implunit\build\foo.vcxproj]
D:\projects\personal\xmake\tests\projects\c++\modules\partitions_implunit\BasicPlane.Figures-Rectangle.cpp(5,50): error C3861: “height”: 找不到标识符 [D:\projects\personal\xmake\test

from xmake.

Issues-translate-bot avatar Issues-translate-bot commented on June 4, 2024

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


I tried cmake, but it doesn't support it. Currently, only msvc supports it, and its support method is rather strange. It does not analyze the modules in the rectangle cpp, but forcibly adds the ifc of all modules to the cpp. Not sure if this support is justified.

At present, my patch uses a hack method to handle deps, which is not very good, and there is currently no official standard that supports this writing method. I will not support it for the time being. If you insist on writing it this way, you can follow what you said before. The way is to add import in rectangle cpp yourself, at least it can be passed under msvc.

D:\projects\personal\xmake\tests\projects\c++\modules\partitions_implunit\build>cmake --build .
Applies to .NET Framework MSBuild version 17.10.0-preview-24081-01+97651a25d

  1>Checking Build System
  Building Custom Rule D:/projects/personal/xmake/tests/projects/c++/modules/partitions_implunit/CMakeLists.txt
  Scanning sources for module dependencies...
  BasicPlane.Figures-Rectangle.cpp
  ModulesTutorial.cpp
  BasicPlane.Figures-Point.ixx
  BasicPlane.Figures-Rectangle.ixx
  BasicPlane.Figures.ixx
  Compiling...
  BasicPlane.Figures-Rectangle.cpp
  BasicPlane.Figures-Point.ixx
  BasicPlane.Figures-Rectangle.ixx
D:\projects\personal\xmake\tests\projects\c++\modules\partitions_implunit\BasicPlane.Figures-Rectangle.cpp(5,10): error C4430: Missing type specifier - int assumed. Note: C++ does not support the default int [D:\projects\
personal\xmake\tests\projects\c++\modules\partitions_implunit\build\foo.vcxproj]
D:\projects\personal\xmake\tests\projects\c++\modules\partitions_implunit\BasicPlane.Figures-Rectangle.cpp(5,25): error C2143: Syntax error: missing "," (before "&") [D:\projects\personal\xmake\
tests\projects\c++\modules\partitions_implunit\build\foo.vcxproj]
D:\projects\personal\xmake\tests\projects\c++\modules\partitions_implunit\BasicPlane.Figures-Rectangle.cpp(5,45): error C2065: 'r': undeclared identifier [D:\projects\ personal\xmake\tests\pr
ojects\c++\modules\partitions_implunit\build\foo.vcxproj]
D:\projects\personal\xmake\tests\projects\c++\modules\partitions_implunit\BasicPlane.Figures-Rectangle.cpp(5,39): error C3861: "width": identifier [D:\projects\ personal\xmake\tests
\projects\c++\modules\partitions_implunit\build\foo.vcxproj]
D:\projects\personal\xmake\tests\projects\c++\modules\partitions_implunit\BasicPlane.Figures-Rectangle.cpp(5,57): error C2065: 'r': undeclared identifier [D:\projects\ personal\xmake\tests\pr
ojects\c++\modules\partitions_implunit\build\foo.vcxproj]
D:\projects\personal\xmake\tests\projects\c++\modules\partitions_implunit\BasicPlane.Figures-Rectangle.cpp(5,50): error C3861: "height": identifier [D:\projects\ personal\xmake\test

from xmake.

dayu521 avatar dayu521 commented on June 4, 2024

采用手动迂回的方式导入的话,我试了,只有clang可以,msvc不行.

能给我一个可以运行的例子吗

from xmake.

Issues-translate-bot avatar Issues-translate-bot commented on June 4, 2024

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


If you use a manual roundabout way to import, I tried it, and only clang can do it, not msvc.

Can you give me an example that works?

from xmake.

waruqi avatar waruqi commented on June 4, 2024

采用手动迂回的方式导入的话,我试了,只有clang可以,msvc不行.

能给我一个可以运行的例子吗

好像没有,之前可以是因为有 ifc 缓存导致,要么你直接 vs 用用好了

from xmake.

Issues-translate-bot avatar Issues-translate-bot commented on June 4, 2024

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


If you use a manual roundabout way to import, I tried it, only clang can, not msvc.

Can you give me an example that works?

It seems not. It may have been caused by ifc cache, or you can use vs directly.

from xmake.

dayu521 avatar dayu521 commented on June 4, 2024

如果一个库a是使用c++20模块方式提供,一个工程b通过xmake使用a,当前没有找到很好的办法.

  • 如果使用msvc编译库a,那么如何在b工程内使用a

  • 如果重新组织a的模块接口,把所有定义都放到模块分区接口单元.ixx,那么在b中,将会再次编译这些定义

还是希望能够支持.cpp文件作为模块分区实现单元.我看了一下,标准草案中,好像允许这种方式,这里也提到了

from xmake.

Issues-translate-bot avatar Issues-translate-bot commented on June 4, 2024

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


If a library a is provided using the c++20 module, and a project b uses a through xmake, there is currently no good way.

  • If you use msvc to compile library a, how to use a in project b

  • If you reorganize the module interface of a and put all definitions into the module partition interface unit .ixx, then in b, these definitions will be compiled again

I still hope to be able to support .cpp files as module partition implementation units. I took a look and it seems that this method is allowed in the draft standard, [here](https://en.cppreference.com/w/cpp/language/ modules) also mentioned

from xmake.

waruqi avatar waruqi commented on June 4, 2024

so in your example u just need to remove the :Rectangle part of module BasicPlane.Figures:Rectangle; in your BasicPlane.Figures-Rectangle.cpp

I tried it, it works for gcc/clang/msvc.

I added this example as tests. #4830

from xmake.

dayu521 avatar dayu521 commented on June 4, 2024

分区接口和分区实现的名字不是一样的,类似于下述

//Foo.ixx
module; 
export module Foo;
//Foo-A.ixx
module; 
export module Foo:A;

void a();
//Foo-A.cpp
module; 
module Foo:A.imp;

import :A;
void a()
{
}

我希望在msvc下这样可以编译成功.(clang可以正常编译)

from xmake.

Issues-translate-bot avatar Issues-translate-bot commented on June 4, 2024

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


The names of the partition interface and the partition implementation are not the same, similar to the following

//Foo.ixx
module;
export module Foo;
//Foo-A.ixx
module;
export module Foo:A;

void a();
//Foo-A.cpp
module;
export module Foo:A.imp;

import :A;
void a()
{
}

I hope this can compile successfully under msvc. (clang can compile normally)

from xmake.

Arthapz avatar Arthapz commented on June 4, 2024

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

The names of the partition interface and the partition implementation are not the same, similar to the following

//Foo.ixx
module;
export module Foo;
//Foo-A.ixx
module;
export module Foo:A;

void a();
//Foo-A.cpp
module;
export module Foo:A.imp;

import :A;
void a()
{
}

I hope this can compile successfully under msvc. (clang can compile normally)

it was the same on your ModuleTutorial.zip

image

"BasicPlane.Figures:Rectangle"

and for your second example, it should work, u just need to remove "export" on
export module Foo:A.imp; because u want an internal partition unit (and you can't use export keyword inside a implementation partition unit)
if it doesn't, maybe we are culling Foo:A.imp because no other module reference it, i'll try tomorrow

from xmake.

dayu521 avatar dayu521 commented on June 4, 2024

是的,不好意思.一开始我确实写错了,之后我更正了过来,但翻译机器人并没有进行更新

我觉得用这样折中的方式可以相对容易的跨编译器运行

from xmake.

Issues-translate-bot avatar Issues-translate-bot commented on June 4, 2024

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


Yes, I'm sorry. I did write it wrong at first. I corrected it later, but the translation robot did not update.

I think this compromise can be relatively easy to run across compilers.

from xmake.

Arthapz avatar Arthapz commented on June 4, 2024

image
so we got the why it's working under msvc, it's an extension

from xmake.

Arthapz avatar Arthapz commented on June 4, 2024

I think this compromise can be relatively easy to run across compilers.

i'm not sure about what you call "compromise", implementation partition unit already work, see https://github.com/xmake-io/xmake/tree/master/tests/projects/c%2B%2B/modules/partitions_implunit and https://github.com/xmake-io/xmake/tree/master/tests/projects/c%2B%2B/modules/partitions_implunit2

from xmake.

dayu521 avatar dayu521 commented on June 4, 2024

@waruqi @Arthapz 好的,感谢大佬们的时间付出.我将使用.mpp文件作为模块分区实现单元,而非使用.cpp

from xmake.

Issues-translate-bot avatar Issues-translate-bot commented on June 4, 2024

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


@waruqi @Arthapz Okay, thank you guys for your time. I will use .mpp files as the module partition implementation unit instead of .cpp

from xmake.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.