在 1.2 版本的 SDL 库中,我找不到 .c 或 .cpp 文件。
我知道我可以从 SDL 网站下载它,但我猜,SDL 如何仅与头文件一起工作,它不需要源文件来读取函数的定义?
这可能是因为您正在查看库(二进制)发行版,而不是源代码。第一部分在这里:
http://www.libsdl.org/download-1.2.php
是源代码(作为 tar.gz、rpm 和 zip 文件存档),后面是二进制发行版的各种变体。
源代码库中肯定有很多 .cc(C++ 源代码的另一个名称)文件。
在二进制发行版中,只有您需要使用或使用库开发的文件,这意味着在前一种情况下,可以安装在机器上的 DLL 或 .so 文件,在第二种情况下,头文件,.lib或 .a 文件,它们允许您编译使用该库的代码。将代码作为二进制包分发是一种常见的做法,因为大多数人通常很少或不需要首先编译库 - 当然假设库中没有太多的错误等。
使用 SDL 构建的应用程序链接到开发人员包中的库,并使用运行时分发中的 .DLL 或 .SO 文件(通常也包含在开发人员分发中以使其“一次下载而不是两次”)。这与您(通常)没有编译器随附的 C 或 C++ 运行时库的源代码printf
或分发中的源代码完全相同。cout