我在使用boost :: managed_mapped_file编译我的应用程序时遇到问题,没有例外。我用标志-DBOOST_NO_EXCEPTIONS -DBOOST_NO_EXCEPTIONS编译它但仍然得到
g++ -c -Wall -g -O0 -Wno-write-strings -fno-exceptions -DBOOST_NO_EXCEPTIONS -DBOOST_NO_EXCEPTIONS -I./ -I../Include/ UT_main.cpp -o UT_main.o"
In file included from /usr/include/boost/interprocess/mapped_region.hpp:18
from /usr/include/boost/interprocess/detail/managed_open_or_create_impl.hpp:17
from /usr/include/boost/interprocess/managed_mapped_file.hpp:20
from ../Include/MyMng.h:11
from main.cpp:7:
/usr/include/boost/interprocess/exceptions.hpp: In constructor interprocess_exception
/usr/include/boost/interprocess/exceptions.hpp:40: error: exception handling disabled, use -fexceptions to enable
从我在代码中看到的,每当-DBOOST_NO_EXCEPTIONS在interprocess / exceptions.hpp上时仍然包含但只包含" include"不包括在内。似乎代码应该与异常一起工作。
如果有人能告诉我我错过了什么 感谢
答案 0 :(得分:0)
不支持编译该库而没有例外。
明确记录了许多功能(例如,在使用create_only
时在现有文件上)。
抛出是无条件的(IOW它不使用Boost Exception的宏来用用户定义的回调替换异常)。
为了完整性:您在消息中看到的标头无法编译,因为它在内部使用
try/catch
(以避免在异常处理期间出现异常)。