yueneiqi / paralllel101_hw01

高性能并行编程与优化 - 第01讲回家作业

Home Page:https://github.com/parallel101/course

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

高性能并行编程与优化 - 第01讲的回家作业

通过 pull request 提交作业。会批分数,但是:

没有结业证书,回家作业仅仅作为评估学习效果和巩固知识的手段,不必为分数感到紧张 :) 量力而行,只要能在本课中,学到昨天的自己不懂的知识,就是胜利,没必要和别人攀比。

作业提交时间不限 :) 即使完结了还想交的话我也会看的~ 不过最好在下一讲开播前完成。

作业要求

在 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, 这样同一个函数会被定义两遍!

About

高性能并行编程与优化 - 第01讲回家作业

https://github.com/parallel101/course


Languages

Language:C 97.8%Language:C++ 1.7%Language:CMake 0.5%