我尝试用 Cmake 构建 PhysFS 库,我使用的是 Code::Blocks mingw makefiles。我可以在我的项目中导入,我可以在技术上声明 PhysFS_init() 函数(尽管这给了我太少的参数错误)但是当我添加一个参数时它告诉我 PHYSFS_init 是一个未定义的引用。
这对我来说听起来很愚蠢,当它没有参数时你怎么能识别它,但当我添加参数时却假装它不存在?我已经运行了两次 CMake,但我只是得到了这个:
[...]\src\main.cpp|20|undefined reference to `PHYSFS_init'|
代码,如有必要(只是一点点,其余的无关紧要):
#include <SFML/Window.hpp>
#include <SFML/System.hpp>
#include <iostream>
#include "Globals.h"
#include "GameStates.h"
#include "GameWindow.h"
#include "GameMenu.h"
#include <physfs.h>
int main(int argc, char** argv)
{
///<|===================| Classes & Declarations |===================|>
sf::Event ev;
sf::RenderWindow winMain ( sf::VideoMode( WindowWidth, WindowHeight, 32 ), WindowTitle );
sf::Image Icon;
GameStates gameState;
GameMenu TitleMenu;
MenuButton buttons[4];
PHYSFS_init(NULL);
为什么会这样?我必须做什么才能在我的项目中使用 PhysFS?我用 CMake 构建了库,包含了我需要的库,我尝试初始化 PhysFS,这给了我一个错误,这让我觉得 C++ 编译程序的方式很愚蠢。