# study-clang **Repository Path**: letsgo-c/study-clang ## Basic Information - **Project Name**: study-clang - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-03-27 - **Last Updated**: 2024-03-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # study clang 学习手段:爬虫项目 1. 写一个命令行程序 2. 使用 cmake + vcpkg 管理编译和第三方库 3. 使用 curl iconv sqlite3 melon 库,来并发采集网页、转码、正则匹配出有用信息并且持久化到 sqlite3 中 4. 采集点英语单词,比如有道词典之类的 ## 一期: 目的:由简再入难,先练习同步采集,熟悉c语言 1. 先搭环境 2. 编译出 hello world 程序 3. 完成调用 curl 4. 把项目分开多文件 5. 进行简单的 utf8 字符串截取(gbk 网页不好找了) 6. 练习正则匹配,找出想要的内容 7. 完成 sqlite3 入库持久化 8. 完成转码(找个 gbk 网页,练习转成 utf8) ## 二期: 目的:上点难度,实现异步并发采集 1. 试验引入非 vcpkg 的库,并且不用系统的库(例如 melon 库) 2. 线程池(多进程模式还是多线程模式,可以考虑借助 melon 库) 3. sqlite3 的锁问题(并发导致) ## 项目运行 1. 首先得有 git(鉴于能够下载这个项目,这条基本都满足,因为 git 是安装 vcpkg 的前提) 1. 由于要 clone github 的仓库,需要会用 github 2. 实在不行或网络不好,可以把 vcpkg 先搞到自己的 gitee.com 上 2. 先安装 vcpkg 1. 手动安装(建议手动安装,手动安装的,如果使用 Clion 也可以用+号导入管理) > 本项目执行到 3 即可 1. 找个 workspace 然后 git clone https://github.com/microsoft/vcpkg.git 2. 进入 vcpkg 目录,非 windows 的执行 bootstrap-vcpkg.sh,windows 的执行 bootstrap-vcpkg.bat 3. 执行过后,会在本目录生成一个可执行文件,非 windows 的是 vcpkg,windows 的是 vcpkg.exe 4. 查看版本 ```bash vcpkg --version 5. 安装第三方库 ```bash vcpkg install curl ``` 2. 也可以用 Clion 帮忙安装 > 1. 通过菜单打开 Vcpkg 界面 > View -> Tool Windows -> Vcpkg > > 2. 点+号,增加一个 vcpkg 仓库 > > ``` > URL: https://github.com/microsoft/vcpkg(默认值) > Directory: /Users/admin/.vcpkg-clion/vcpkg(默认值) > 然后勾选上两个勾 > ``` > > 这一步会在 Clion 中添加一个 CMake options(它不能影响命令行直接执行的 cmake) 3. 修改项目根目录下的 .cmakerc 如果没有就新建一个 ```bash # 示例中 /Users/admin/.vcpkg-clion/vcpkg/ 是 vcpkg 的安装目录 # 这个文件已经被加入 .gitignore 请不要上传 CMAKE_TOOLCHAIN_FILE=/Users/admin/.vcpkg-clion/vcpkg/scripts/buildsystems/vcpkg.cmake ``` 4. 然后 cd 进 build,执行 ./run.sh 5. 由于项目使用了 vcpkg.json(清单模式),所以 vcpkg 会自动帮忙下载和编译依赖的第三方库(首次编译运行会很慢)