Tôi đã gặp phải một vấn đề nhỏ khi sử dụng trình phân tích cú pháp dòng lệnh rất hay này Argo (chỉ thư viện C++ tiêu đề). Nhìn thấy:https://github.com/phforest/Argo
Argo trả về: 'Lỗi: Tùy chọn không xác định' khi không tìm thấy tùy chọn nào, nhưng không trả về khi đối số theo sau một đối số đã biết.
Biên dịch đoạn mã sau: (inc là vị trí của tiêu đề argo) c++ test.cpp -I inc --std=c++11
Nhãn:
#include
int main(int argc, char **argv)
{
argo::Cấu hình pcnfg;
std::vector input_texts;
pcnfg.program.name = { "wow", "EyeOnText WoWoolConsole" };
pcnfg.program.version = { 1, 1, 1 };
argo::Đối số args(pcnfg);
args.add(argo::handler::Option("input-text", "i", input_texts).help("Nhập văn bản để xử lý."));
kết quả tự động const = args.parse(argc, argv);
chuyển đổi (kết quả.status)
{
case argo::ReturnCode::Error: std::cerr << "Error: " << result.message << std::endl;
case argo::ReturnCode::SuccessAndAbort: return 0;
mặc định: nghỉ;
}
cho ( auto const & input : input_texts )
{
std::cout << "- " << đầu vào << std::endl;
}
return 0;
}
Chạy: ./a.out --other -i "test" lỗi: tùy chọn không xác định '--other' cái nào tốt hơn
Chạy: ./a.out -i "test"--other- test--other
--other không nên có trong danh sách đầu vào.
(Tuyên bố miễn trừ trách nhiệm: Tôi là nhà phát triển thư viện)
Tôi nghĩ điều này đã được sửa trong các phiên bản mới hơn. Ít nhất, bằng cách sử dụng mã được cung cấp, tôi đã nhận được kết quả mong đợi (hai lỗi "tùy chọn không xác định"). Nếu điều đó không hiệu quả, chúng ta có thể sử dụng https://gitlab.com/dgrine/Argo/issues trình theo dõi lỗi để xử lý nó.
Về c++ - Sử dụng trình phân tích cú pháp dòng lệnh Argo: Tùy chọn không xác định không được trả về khi tùy chọn nằm sau tùy chọn hiện tại, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/57092625/
Tôi là một lập trình viên xuất sắc, rất giỏi!