मैं सीएमके और क्लियन का उपयोग करते हुए उबंटू 14.04 पर हूं। मैं, कार्यक्रम विकल्प का उपयोग करने के कोशिश कर रहा हूँ अपने दस्तावेज में एक उदाहरण से लिया निम्न कोड के साथ:बूस्ट प्रोग्राम_ऑप्शन फेंकता है "चरित्र रूपांतरण विफल"
#include <iostream>
#include <boost/program_options.hpp>
int main(int ac, char* av[]) {
namespace po = boost::program_options;
using namespace std;
po::options_description desc("Allowed options");
desc.add_options()
("help", "produce help message")
("compression", po::value<int>(), "set compression level")
;
po::variables_map vm;
po::store(po::parse_command_line(ac, av, desc), vm);
po::notify(vm);
if (vm.count("help")) {
cout << desc << "\n";
return 1;
}
if (vm.count("compression")) {
cout << "Compression level was set to "
<< vm["compression"].as<int>() << ".\n";
} else {
cout << "Compression level was not set.\n";
}
}
जब मैंने इसे चलाने के लिए, मैं टर्मिनल से निम्नलिखित उत्पादन प्राप्त करें:
$ ./bin/webserver --help
terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<std::logic_error> >'
what(): character conversion failed
Aborted (core dumped)
क्यों है यह काम नहीं कर रहा है और मैं इसे कैसे हल कर सकता हूं?
संपादित करें: कुछ डीबगिंग के बाद, मैंने पाया कि समस्या store
के साथ लाइन से आती है, अगर यह आपके लिए कोई मदद है। इसके अलावा, मैं मैं store(..., true)
उपयोग करने की कोशिश (true
को unicode
की स्थापना)
g ++ 4.9.2 और बूस्ट 1.55 का उपयोग करके मेरे लिए कोई त्रुटि नहीं है। – rhashimoto
मैं बूस्ट 1.60.0 – Victor
का उपयोग कर रहा हूं मुझे डिजिटलऑअन क्लीन वीएम पर एक ही समस्या है। तो मुझे लगता है कि बूस्ट या मेरे संकलन के साथ कोई समस्या है .... लेकिन मुझे नहीं पता कि इन सिद्धांतों का परीक्षण कैसे करें। – Victor