Wpis z mikrobloga

#programowanie #cpp #naukaprogramowania
Chciałem odpalić c++20 i potestować jak to wygląda bo jestem ciekawy
mój protip jak ktoś chce to robić: róbcie to pod wodą żeby nikt nie widział płaczu, ani nie słyszał krzyku
próbuje narazie skompilować moduł clangiem, i kiepsko mi to idzie, chętnie się dowiem jakie flagi powinienem użyć
  • 28
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@RedveKoronny: no to masz dwa pliki helloworld.cpp i main.cpp wiesz musisz oba skompilowac i zlinkowac w jednym kroku poprzez clang++ -fmodules -std=c++20 helloworld.cpp main.cpp -omojprogram
albo osobno skompilowac kazdy z nich

clang++ -c -fmodules -std=c++20 helloworld.cpp
clang++ -c -fmodules -std=c++20 main.cpp
  • Odpowiedz
@RedveKoronny:
Now, let’s compile it. There are two steps in compiling this program:
Compile the module into .pcm , which stands for Pre-compiled Module
Compile main.cpp with the .pcm file
In Clang 10, we have to specify the flag -std=c++2a with other flags. Refer to the Clang Modules page for detailed explanation.
$ clang++ -std=c++2a -c helloworld.cpp -Xclang -emit-module-interface
  • Odpowiedz
u mnie zadzialalo to

$ clang++ -std=c++2a -stdlib=libc++ -fimplicit-modules -fimplicit-module-maps -c helloworld.cpp -Xclang -emit-module-interface -o helloworld.pcm
$ clang++ -std=c++2a -stdlib=libc++ -fimplicit-modules -fimplicit-module-maps -fprebuilt-module-path=. main.cpp helloworld.cpp
$ ./a.out
Hello Module! Data is 123
  • Odpowiedz
@RedveKoronny:

[nix-shell:/tmp/cppmodules]$ clang++ -std=c++2a -stdlib=libc++ -fimplicit-modules -fimplicit-module-maps -c helloworld.cpp -Xclang -emit-module-interface -o helloworld.pcm
clang-11: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
  • Odpowiedz
via Wykop Mobilny (Android)
  • 0
@RedveKoronny: odpal sobie visual studio, wystarczy że zaznaczysz jednego checkboxa i już masz. Programowanie w c++ na Linuxie to masochizm, ale niestety wiele firm woli oszczędzać i trzeba ...
  • Odpowiedz