【发布时间】:2022-12-14 05:17:38
【问题描述】:
我试图在没有 rtti 的情况下使用 ASIO (1.24),但我总是遇到未定义的引用错误。 所以我做了一个简单的测试程序来重现这个问题:
主.cpp:
#define ASIO_STANDALONE
#define ASIO_HEADER_ONLY
#define ASIO_NO_EXCEPTIONS
#define ASIO_NO_TYPEID
#include "asio.hpp"
int main()
{
asio::io_context io;
return 0;
}
当它被编译时
g++-12 -o Test -std=c++20 -fno-rtti -fno-exceptions -I../libs/Asio/1.24.0/include Main.cpp
我得到
undefined reference to `void asio::detail::throw_exception<std::system_error>(std::system_error const&)'
undefined reference to `void asio::detail::throw_exception<asio::invalid_service_owner>(asio::invalid_service_owner const&)'
undefined reference to `void asio::detail::throw_exception<asio::service_already_exists>(asio::service_already_exists const&)'
我错过了什么吗?我怎样才能让它编译?
【问题讨论】:
标签: c++ g++ boost-asio c++20 rtti