3gpp文件头文件解析_居于LLVM 的命令行参数解析

在写命令行程序的时候经常需要解析各种命令行参数、打印help信息等,觉得非常的麻烦。今天介绍一种超级棒的命令参数解析的方法:居于LLVM 的命令行参数解析,有了它妈妈再也不用担心我不会解析命令行参数^ _ ^。

一、工程目录结构

0136489a3fe11b0a124764a82ae2b31d.png

二、示例代码
2.1 CMDemo.cpp

1.#include

2.#include

3.#include

4.#include

5.using namespace llvm;

6.

7.static cl::opt<bool> BOOLEAN_ARG("boolean-arg",cl::desc("test boolean arg"),cl::init(false));

8.static cl::opt<int> INT_ARG("int-arg",cl::desc("test integer arg"),cl::init(0));

9.static cl::opt<std::string> STRING_ARG("string-arg",cl::desc("string arg"),cl::value_desc("test string arg"),cl::init(""));

10.

11.int main(int argc, char **argv){

12.

13. cl::ParseCommandLineOptions(argc,argv,"llvm CommandLine demo\n");

14.

15. std::string string_arg = STRING_ARG;

16. bool boolean_arg = BOOLEAN_ARG;

17. int int_arg = INT_ARG;

18.

19. printf("string_arg:%s \n",string_arg.c_str());

20. printf("boolean_arg:%d \n",boolean_arg);

21. printf("int_arg:%d\n",int_arg);

22. return 0;

23.}

2.2 CMakeLists.txt

1.cmake_minimum_required(VERSION 3.11.2) #cmake版本要求

2.

3.project(CMDemo) #项目名称

4.

5.link_libraries(z)

6.link_libraries(curses)

7.link_libraries(pthread)

8.

9.set(CMAKE_CXX_STANDARD 11) #设置C++标准为C++11 LLVM 10 之后要用C++14

10.

11.set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib) #设置库文件输出到代码源路径下的lib文件夹中;

12.

13.find_package(LLVM REQUIRED CONFIG) #找到LLVM库,REQUIRED表示一定要找到这个库,找不到这个库,编译就直接结束,不再往下进行了

14.

15.llvm_map_components_to_libnames(LLVM_LIBRARIES all) #获取所有的LLVM库名称列表 保存在LLVM_LIBRARIES变量中

16.include_directories(${LLVM_INCLUDE_DIRS}) #设置LLVM库的头文件路径

17.

18.add_compile_options(-fno-rtti) #不用C++ RTTI 不然链接的时候会报错

19.

20.include_directories(${PROJECT_SOURCE_DIR}/include) #设置工程头文件路径

21.

22.

23.add_executable(CMDemo src/CMDemo.cpp)

24.

25.target_link_libraries(CMDemo ${LLVM_LIBRARIES}) #添加依赖库

三、运行效果
3.1 使用帮助

135868266fc5923b7d165468487cf667.png

3.2 默认参数

533fb34099966b48c82e839c9464b852.png

3.3 传递参数

a9b6ba449dc357779cbff519f4cd57f7.png

四、总结

主要是调用了LLVM Support库的cl::ParseCommandLineOptions函数对命令行参数进行解析,一行代码就完成了命令行参数解析功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值