通过 pull request 提交作业。会批分数,但是:
没有结业证书,回家作业仅仅作为评估学习效果和巩固知识的手段,不必为分数感到紧张 :) 量力而行,只要能在本课中,学到昨天的自己不懂的知识,就是胜利,没必要和别人攀比。
作业提交时间不限 :) 即使完结了还想交的话我也会看的~ 不过最好在下一讲开播前完成。
- 如何开 pull request:https://zhuanlan.zhihu.com/p/51199833
- 如何设置 https 代理:https://www.jianshu.com/p/b481d2a42274
在 main.cpp 中为了导出两个"美好的图像",使用了 stb_image_write.h
这个头文件。
他在 CMakeLists.txt 中也引用了 stbiw 这个库,然而这个库还没有被定义。
你的任务就是 定义 stbiw 这个库,他的内容应该包含 stbi_write_png()
的实现,
以及允许通过尖括号导入头文件 <stb_image_write.h>
。
运用上课所学知识,尽量不修改 main.cpp 的内容,只修改 stbiw 子目录下的内容, 完成任务。最好以子模块 + 库的形式,实在不行的话直接改 main.cpp 也可以。
运行成功后,应该会在主程序同目录发现两个"美好的图像":mandel.png 和 rainbow.png
stb_image_write.h 原仓库地址: https://github.com/nothings/stb
你需要在一个且仅一个 .cpp 文件定义了 STB_IMAGE_WRITE_IMPLEMENTATION
这个宏,
才能决定让 stbi 系列函数在这里实现。
如果你不仅完成了作业,还能解释清楚为什么 stbi 必须要这样设计,可能会给你满分!
像这样:
target_compile_definitions(stbiw PUBLIC -DSTB_IMAGE_WRITE_IMPLEMENTATION)
是不行的,因为 mandel.cpp 和 rainbow.cpp 两个文件都 include 了 stb_image_write.h, 这样同一个函数会被定义两遍!