Boost:: system:: error_code:: сообщение появляется как тарабарщина с -stdlib = libС++

Я использую Boost 1.51 под OS X 10.7.4, и я обнаружил, что ссылка на стандартную библиотеку С++ 11 вызывает сообщение об ошибке системы безопасности для вывода полной тарабарщины. Кто-нибудь знает, почему это может быть, и как остановить это?

Пример:

#include <iostream>
#include <boost system="" error_code.hpp="">
int main() {
 std::cout << "system_category(9): " << boost::system::system_category().message( 9 ) << std::endl;
 std::cout << "system_category(bad_file_desc): " << boost::system::system_category().message( boost::system::errc::bad_file_descriptor ) << std::endl;
 return 0;
}
</boost></iostream>
$ c++ --version
Apple clang version 4.1 (tags/Apple/clang-421.11.65) (based on LLVM 3.1svn)
Target: x86_64-apple-darwin11.4.0
Thread model: posix
$ c++ -lboost_system -o boost_error_codes boost_error_codes.cpp -std=c++11 && ./boost_error_codes
system_category(9): Bad file descriptor
system_category(bad_file_desc): Bad file descriptor
$ c++ -lboost_system -o boost_error_codes boost_error_codes.cpp -std=c++11 -stdlib=libc++ && ./boost_error_codes
system_category(9): ?HJ?a?Q???t??
system_category(bad_file_desc): ??U?a?? W?a?0W?a?X ?HJ?a?Q???t??
1 ответ

Скомпилировали ли вы boost.system с помощью libС++?

LLVM libС++ и GNU libstdС++ не совместимы с ABI, поэтому, если у вас нет этого, возможно, виновника.

licensed under cc by-sa 3.0 with attribution.