Open Garcia6l20 opened 4 years ago
On ubuntu, executables must be explicitly linked with -lc++
:
cmake -DCMAKE_CXX_FLAGS="-stdlib=libc++" -DCMAKE_EXE_LINKER_FLAGS="-lc++" <path_to_sources>
Is this now solved with the latest changes in the integrate_all branch?
No, it is not. Clang will only compile with libc++, but it should also work with libstdc++. This won't change until clang updates it's coroutine header to non-experimental path, or even accept it.
I guess this is solved in the master branch of andreasbuhr/cppcoro? I see that more documentation is required.
The answer is simple can you build it with clang without --stdlib=libc++
?
There are few problems with clang.
First, It is not able to find GCC headers, it is caused by -fcoroutines-ts and -fcoroutines does not define the same preprocessor definition, It can be workarounded with -D__cpp_impl_coroutine=1 (what -fcoroutines does).
And now, clang complains that a coroutine cannot be used without <experimental/coroutine> inclusion what is breaking with GCC.
eg.:
Currently the only way to use with clang is to use libc++ (tested with clang-12 on Arch):