好的,我将尝试详细描述我的问题。我已经开始使用 SFML 的 ziploading API 来从存档中读取游戏资源,我已将所有必需的头文件和源文件放在代码块中的项目中,因此我的项目包含以下内容:
Source files for game
ZipLoader.h
ZipLoader.cpp
ioapi.h
unzip.h
zconf.h
zlib.h
所以在我的游戏菜单标题中,我尝试根据存档中的资源绘制游戏菜单,我有这个:
#include <SFML/Graphics.hpp>
#include "Globals.h"
#include "ZipLoader.h"
class GameMenu
{
private:
Zip::File file();
}
基本上,我尝试在其中初始化一个 zip 文件,以便可以在我声明菜单的 gameMenu.cpp 中从中加载。但是我在 ZipLoader.cpp 中遇到了一些非常奇怪的错误,如下所示:
src\ZipLoader.cpp|81|undefined reference to `unzOpen'|
src\ZipLoader.cpp|89|undefined reference to `unzLocateFile'|
src\ZipLoader.cpp|94|undefined reference to `unzOpenCurrentFile'|
src\ZipLoader.cpp|100|undefined reference to `unzGetCurrentFileInfo'|
src\ZipLoader.cpp|105|undefined reference to `unzReadCurrentFile'|
src\ZipLoader.cpp|109|undefined reference to `unzCloseCurrentFile'|
src\ZipLoader.cpp|110|undefined reference to `unzClose'|
但我发现这是不可能的,我想我错过了这个库,但是我把它导入到给我错误的文件中,上面列出的所有方法都位于在unzip.h
给我错误的文件中导入的文件中,如下所示:
#include "ZipLoader.h"
#include <SFML/System.hpp>
#include <iostream>
#include <fstream>
#include "unzip.h"
...
unzFile ZipHandle=unzOpen(DataFile); // error????
正如您在下面看到的,在 unzip.h 中,这些引用非常好:
extern unzFile ZEXPORT unzOpen OF((const char *path));
extern unzFile ZEXPORT unzOpen2 OF((const char *path,
zlib_filefunc_def* pzlib_filefunc_def));
extern int ZEXPORT unzClose OF((unzFile file));
这是迄今为止我在 C++ 程序中遇到的最奇怪的错误,当它就在那里时,它怎么可能是未定义的?(我使用的是 Windows XP SP3)