{"id":19652409,"url":"https://github.com/pingf/cpp_demo","last_synced_at":"2025-09-03T06:36:06.809Z","repository":{"id":147605743,"uuid":"177297751","full_name":"pingf/cpp_demo","owner":"pingf","description":null,"archived":false,"fork":false,"pushed_at":"2019-03-23T14:21:59.000Z","size":137,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-27T01:44:37.224Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pingf.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-03-23T14:18:10.000Z","updated_at":"2019-03-24T15:09:03.000Z","dependencies_parsed_at":"2023-06-18T15:34:09.883Z","dependency_job_id":null,"html_url":"https://github.com/pingf/cpp_demo","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/pingf/cpp_demo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pingf%2Fcpp_demo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pingf%2Fcpp_demo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pingf%2Fcpp_demo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pingf%2Fcpp_demo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pingf","download_url":"https://codeload.github.com/pingf/cpp_demo/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pingf%2Fcpp_demo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273403943,"owners_count":25099299,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-03T02:00:09.631Z","response_time":76,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-11T15:10:39.622Z","updated_at":"2025-09-03T06:36:06.782Z","avatar_url":"https://github.com/pingf.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# cpp_demo\n\n## tag \"basic\" 版本\n- 将仓库checkout到basic的tag\n- 安装配置号cpp的开发环境，包括编译套件，比如g++， llvm-c++ 之类的，以及相关的构建工具cmake和make等，随便哪个装一个就好, 这里不在赘述\n- 运行一个helloworld的基本方法，在工程的顶级目录，运行`cmake ./`\n- 上一步骤后，会生成一堆makefile文件，此时执行`make`, 即可完成构建\n\n## tag \"makefile\" 版本\n- 如果没有cmake或者不习惯cmake，可以使用make， 将仓库checkout到makefile的tag\n- 修改makefile中对应的路径，比如`CMAKE_SOURCE_DIR = /home/dameng/data/repo/daocloud/cpp_demo` 要修改成你自己的目录，这样的还有几处\n- 修改完成后，执行make，完成构建\n\n## 运行\n- 构建结束后，执行`./bin/hello-daocloud`\n\n\n## 构建镜像运行程序\n- 将仓库checkout到image的tag\n- 如果项目中有源于其它机器或repo中已经生成过的makefile相关配置，请删除，`rm -rf ./bin ./CMakeFiles CMakeCache.txt cmake_install.cmake Makefile`\n- 构建镜像 `docker build -f ./cpp.Dockerfile . -t alpcpp-demo`， 注意此镜像的基础镜像为`mergeforward/alpdev`, 请确保使用时可以从docker hub或其它地方拉取到该镜像\n- 执行 `docker run --rm -it alpcpp-demo`\n\n## tag \"multi\" 版本\n- 将仓库checkout到multi版本，注意这个版本中程序稍微变化了一些，引入了多文件的demo，同时cmake的配置也做了一些修改\n- 因为所有的配置都已经做好了，所以直接按照上面的构建镜像并执行即可\n\n## tag \"test\" 版本\n- 将仓库checkout到test版本，测试使用的是catch2，具体的修改请参考源码\n- 构建镜像如同前面所述\n- 运行主程序 `docker run --rm -it alpcpp-demo`\n- 运行正确的测试 `docker run --rm -it --entrypoint \"/opt/hello-daocloud/bin/test-factorial\" alpcpp-demo`\n- 运行错误的测试 `docker run --rm -it --entrypoint \"/opt/hello-daocloud/bin/test-factorial-fail\" alpcpp-demo`\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpingf%2Fcpp_demo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpingf%2Fcpp_demo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpingf%2Fcpp_demo/lists"}