1
問題があります。私はCmakeを使ってVS 2015でブーストしています。Cmake、ブースト構文解析コマンドライン
私はcgalとassimpを使ってツールを開発しようと考えています。自分のファイル形式に変換する。しかし、私は問題に遭遇し、シンプルかもしれないが、それを見ることはできません。
F5キーを押すと、添付した2つのイメージのようにデバッグエラーが発生します。私は自分のコードを添付しました。写真はここにある:
#include <boost/asio.hpp>
#include <boost/filesystem/path.hpp>
#include <boost/iostreams/device/file_descriptor.hpp>
#include <boost/iostreams/stream.hpp>
#include <boost/program_options.hpp>
#include <boost/system/error_code.hpp>
#include <iostream>
#include <sstream>
#include <string>
struct CMDOPTIONS {
std::string input, output, directory;
int points;
};
namespace po = boost::program_options;
bool process_command_line(int argc, char **argv, CMDOPTIONS &cmdoptions1) {
if (argv == nullptr) {
return false;
}
try {
po::options_description desc("Program Usage");
po::options_description desc ("Program Usage");
desc.add_options()
("halp, h", "Halp!")
("input, i", po::value<std::string>(&cmdoptions1.input), "Specify Input")
("output, o", po::value<std::string>(&cmdoptions1.output) ,"Specify Output")
("points, p", po::value<int>(&cmdoptions1.points), "% of reduced points")
("directory, d", po::value<std::string>(&cmdoptions1.directory)->required(), "set the directory");
po::variables_map vm;
po::store(po::parse_command_line(argc, argv, desc), vm);
po::notify(vm);
if (vm.count("help")) {
std::cout << desc << std::endl;
return false;
}
// trolololol XD
if (vm.count("input")) {
&cmdoptions1.input;
}
if (vm.count("output")) {
&cmdoptions1.output;
}
if (vm.count("points")) {
&cmdoptions1.points;
}
if (vm.count("directory")) {
&cmdoptions1.directory;
}
} catch (std::exception &e) {
std::cerr << "Error: " << e.what() << std::endl;
return false;
} catch (int e) {
std::cerr << "Unknown error!" << e << std::endl;
return false;
}
return true;
}
int main(int argc, char **argv, CMDOPTIONS &cmdoptions1) {
bool result = process_command_line(argc, argv, cmdoptions1);
if (!result)
return -1;
std::cout << "input" << &cmdoptions1.input << std::endl;
std::cout << "output" << &cmdoptions1.output << std::endl;
std::cout << "points" << &cmdoptions1.points << std::endl;
std::cout << "directory\t" << &cmdoptions1.directory << std::endl;
}
チェック。あなたはデバッガに入っています。これを使って! – sehe
はい再試行を押すと、desc..add_optionsで停止した場所が表示されます。なぜそれが問題なのか不明です。 –
あなたはブレークポイントにヒットしたウィンドウを取得できます。ちょうどブレークボタンを使用して調査してください。ブーストプログラムのオプションを間違って使用しています....ビジュアルスタジオは、どこにどのようにポイントする必要があります – Hayt