我试图将一些资产打包到一个带有自定义扩展的存档中,当我遇到初始化PHYSFS的问题时,尝试遵循一个物理教程(非常模糊)。它需要一个参数argv [0]然而它给了我一个错误,argv没有声明。我也尝试将argv作为参数传递给主函数,但这似乎也不起作用。这是导致我麻烦的一小段代码:
#include "physfs.h"
int FileManager()
{
PHYSFS_init(argv[0]) //error
...
}
答案 0 :(得分:3)
argv不是全局范围的变量,因此在FileManager()中不可见。 argv通常是main()的参数。因此,为了让您的FileManager函数能够看到它,您需要将它定义为main()和FileManager()函数定义中的参数,然后在调用FileManager()时传递argv(可能来自main)。 / p>
如果你没有从main调用FileManager(),比如你通过一些中间函数,只需重复这个过程 - 将argv定义为中间函数的参数,并确保它在调用FileManager()时传播argv (根据你的调用堆栈的需要扩展它。)
答案 1 :(得分:1)
从this tutorial开始,似乎PHYSFS_init
的第一个也是唯一的参数应该是执行文件的路径。它还说明这通常为null,因此您可以传递null。我同意该教程是缺乏的,因为我已经阅读了该段落,因为它实际上并没有解释该参数的用途。我假设它根据可执行文件的路径使用参数来计算应该使用的根目录。