archibate / co_async

C++20 Coroutine Library for Education Purpose (WIP)
179 stars 11 forks source link

编译出错 #9

Closed greent2008 closed 1 month ago

greent2008 commented 1 month ago

OS: Debian GNU/Linux 12 (bookworm) x86_64 Kernel: 6.1.0-23-amd64 g++: g++ (GCC) 14.2.0

= co_async::TaskPromise<co_async::Expected >]’ 37 | struct TaskAwaiter { | ^~~ /home/jianengxi/hdisk/gitrepo/github/co_async/./co_async/generic/io_context.hpp:50:25: required from here 50 | auto ret = co_await task; | ^~~~ /home/jianengxi/hdisk/gitrepo/github/co_async/./co_async/utils/uninitialized.hpp:21:13: 警告:‘throw’ will always call ‘terminate’ [-Wterminate] 21 | throw std::logic_error("Uninitialized destroyed with value"); | ^~~~~~~~~~~~~~~~ /home/jianengxi/hdisk/gitrepo/github/co_async/./co_async/utils/uninitialized.hpp:21:13: 附注:in C++11 destructors default to ‘noexcept’ In file included from /home/jianengxi/hdisk/gitrepo/github/co_async/./co_async/generic/condition_variable.hpp:8, from /home/jianengxi/hdisk/gitrepo/github/co_async/./co_async/generic/thread_pool.hpp:5, from /home/jianengxi/hdisk/gitrepo/github/co_async/co_async/generic/thread_pool.cpp:2: /home/jianengxi/hdisk/gitrepo/github/co_async/./co_async/platform/futex.hpp: In instantiation of ‘void co_async::futex_notify(std::atomic<_ITp>, std::size_t, uint32_t) [with T = unsigned int; std::size_t = long unsigned int; uint32_t = unsigned int]’: /home/jianengxi/hdisk/gitrepo/github/co_async/./co_async/generic/condition_variable.hpp:463:21: required from here 463 | futex_notify(&mFutex, 1); | ~~^~~~~~ /home/jianengxi/hdisk/gitrepo/github/co_async/./co_async/platform/futex.hpp:122:29: 错误:return-statement with a value, in function returning ‘void’ [-fpermissive] 122 | return futex_notify_sync(futex, count, mask); | ~~~^~~~~~ /home/jianengxi/hdisk/gitrepo/github/co_async/./co_async/utils/uninitialized.hpp: In instantiation of ‘co_async::Uninitialized::~Uninitialized() [with T = int]’: /home/jianengxi/hdisk/gitrepo/github/co_async/./co_async/awaiter/task.hpp:37:8: required from ‘auto co_async::Task<T, P>::operator co_await() && [with T = int; P = co_async::TaskPromise]’ 37 | struct TaskAwaiter { | ^~~ /home/jianengxi/hdisk/gitrepo/github/co_async/./co_async/platform/futex.hpp:83:9: required from ‘co_async::Task<co_async::Expected > co_async::futex_wait(std::atomic<_ITp>, std::type_identity_t<_Type>, uint32_t) [with T = unsigned int; std::type_identity_t<_Type> = unsigned int; uint32_t = unsigned int]’ 83 | co_await UringOp() | ^~~~ /home/jianengxi/hdisk/gitrepo/github/co_async/./co_async/generic/condition_variable.hpp:456:41: required from here 456 | co_await co_await futex_wait(&mFutex, old); | ~~^~~~~~ /home/jianengxi/hdisk/gitrepo/github/co_async/./co_async/utils/uninitialized.hpp:21:13: 警告:‘throw’ will always call ‘terminate’ [-Wterminate] 21 | throw std::logic_error("Uninitialized destroyed with value"); | ^~~~~~~~~~~~~~~~ /home/jianengxi/hdisk/gitrepo/github/co_async/./co_async/utils/uninitialized.hpp:21:13: 附注:in C++11 destructors default to ‘noexcept’ gmake[2]: [CMakeFiles/co_async.dir/build.make:132:CMakeFiles/co_async.dir/co_async/generic/thread_pool.cpp.o] 错误 1 gmake[1]: [CMakeFiles/Makefile2:144:CMakeFiles/co_async.dir/all] 错误 2 gmake: *** [Makefile:91:all] 错误 2

请问应该怎么解决

archibate commented 1 month ago

多谢提醒,5bf4351已修复。

无法顺畅的大口呼吸,是活着的最好证明

---原始邮件--- 发件人: @.> 发送时间: 2024年8月2日(周五) 晚上10:36 收件人: @.>; 抄送: @.***>; 主题: [archibate/co_async] 编译出错 (Issue #9)

OS: Debian GNU/Linux 12 (bookworm) x86_64 Kernel: 6.1.0-23-amd64 g++: g++ (GCC) 14.2.0

= co_async::TaskPromise<co_async::Expected >]’ 37 | struct TaskAwaiter { | ^~~ /home/jianengxi/hdisk/gitrepo/github/co_async/./co_async/generic/io_context.hpp:50:25: required from here 50 | auto ret = co_await task; | ^~~~ /home/jianengxi/hdisk/gitrepo/github/co_async/./co_async/utils/uninitialized.hpp:21:13: 警告:‘throw’ will always call ‘terminate’ [-Wterminate] 21 | throw std::logic_error("Uninitialized destroyed with value"); | ^~~~~~~~~~~~~~~~ /home/jianengxi/hdisk/gitrepo/github/co_async/./co_async/utils/uninitialized.hpp:21:13: 附注:in C++11 destructors default to ‘noexcept’ In file included from /home/jianengxi/hdisk/gitrepo/github/co_async/./co_async/generic/condition_variable.hpp:8, from /home/jianengxi/hdisk/gitrepo/github/co_async/./co_async/generic/thread_pool.hpp:5, from /home/jianengxi/hdisk/gitrepo/github/co_async/co_async/generic/thread_pool.cpp:2: /home/jianengxi/hdisk/gitrepo/github/co_async/./co_async/platform/futex.hpp: In instantiation of ‘void co_async::futex_notify(std::atomic<_ITp>, std::size_t, uint32_t) [with T = unsigned int; std::size_t = long unsigned int; uint32_t = unsigned int]’: /home/jianengxi/hdisk/gitrepo/github/co_async/./co_async/generic/condition_variable.hpp:463:21: required from here 463 | futex_notify(&mFutex, 1); | ~~^~~~~~ /home/jianengxi/hdisk/gitrepo/github/co_async/./co_async/platform/futex.hpp:122:29: 错误:return-statement with a value, in function returning ‘void’ [-fpermissive] 122 | return futex_notify_sync(futex, count, mask); | ~~~^~~~~~ /home/jianengxi/hdisk/gitrepo/github/co_async/./co_async/utils/uninitialized.hpp: In instantiation of ‘co_async::Uninitialized::~Uninitialized() [with T = int]’: /home/jianengxi/hdisk/gitrepo/github/co_async/./co_async/awaiter/task.hpp:37:8: required from ‘auto co_async::Task<T, P>::operator co_await() && [with T = int; P = co_async::TaskPromise]’ 37 | struct TaskAwaiter { | ^~~ /home/jianengxi/hdisk/gitrepo/github/co_async/./co_async/platform/futex.hpp:83:9: required from ‘co_async::Task<co_async::Expected > co_async::futex_wait(std::atomic<_ITp>, std::type_identity_t<_Type>, uint32_t) [with T = unsigned int; std::type_identity_t<_Type> = unsigned int; uint32_t = unsigned int]’ 83 | co_await UringOp() | ^~~~ /home/jianengxi/hdisk/gitrepo/github/co_async/./co_async/generic/condition_variable.hpp:456:41: required from here 456 | co_await co_await futex_wait(&mFutex, old); | ~~^~~~~~ /home/jianengxi/hdisk/gitrepo/github/co_async/./co_async/utils/uninitialized.hpp:21:13: 警告:‘throw’ will always call ‘terminate’ [-Wterminate] 21 | throw std::logic_error("Uninitialized destroyed with value"); | ^~~~~~~~~~~~~~~~ /home/jianengxi/hdisk/gitrepo/github/co_async/./co_async/utils/uninitialized.hpp:21:13: 附注:in C++11 destructors default to ‘noexcept’ gmake[2]: [CMakeFiles/co_async.dir/build.make:132:CMakeFiles/co_async.dir/co_async/generic/thread_pool.cpp.o] 错误 1 gmake[1]: [CMakeFiles/Makefile2:144:CMakeFiles/co_async.dir/all] 错误 2 gmake: *** [Makefile:91:all] 错误 2

请问应该怎么解决

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you are subscribed to this thread.Message ID: @.***>

archibate commented 1 month ago

你可能开启了-DCO_ASYNC_INVALFIX=ON开关,但是你的内核是6.1的,只有5.x的内核才需要那个开关,所以你可以-DCO_ASYNC_INVALFIX=OFF