我正在运行 Linux Mint。版本信息如下:
$ cat /etc/*-release
DISTRIB_ID=LinuxMint
DISTRIB_RELEASE=12
DISTRIB_CODENAME=lisa
DISTRIB_DESCRIPTION="Linux Mint 12 Lisa"
我正在尝试为使用 sfml 的 C++ 程序编译和链接文件。尝试编译文件时,出现以下错误:
$g++ -c lineTest.cpp Rasterizer.cpp simpleCanvas.cpp
In file included from /usr/local/include/SFML/System/Resource.hpp:211:0,
from /usr/local/include/SFML/Graphics/Image.hpp:31,
from simpleCanvas.h:13,
from simpleCanvas.cpp:9:
/usr/local/include/SFML/System/ResourcePtr.inl:
In constructor ‘sf::ResourcePtr< <template-parameter-1-1> >::ResourcePtr()’:
/usr/local/include/SFML/System/ResourcePtr.inl:31:12:
error: ‘NULL’ was not declared in this scope
/usr/local/include/SFML/System/ResourcePtr.inl: In member function ‘void sf::ResourcePtr< <template-parameter-1-1> >::OnResourceDestroyed()’:
/usr/local/include/SFML/System/ResourcePtr.inl:148:18: error: ‘NULL’ was not declared in this scope
在文件 ResourcePtr.inl 中使用“NULL”似乎有问题。就个人而言,我通常会避免使用这个关键字,而是使用 0,但是当它用于我自己甚至没有编写的包文件中时,我该怎么办?此外,如果没有我的管理员权限,我将无法编辑该文件以更正它,但我使用 sudo 编辑它并添加了#include <cstddef>
. 这为一系列类似问题打开了闸门,其中“未定义”或关键字或类型无法识别(列表太长,我无法在此处发布)。这似乎表明库中缺少某些内容。最初设置库时我遇到了很多麻烦,所以我意识到我可能没有正确完成。你可以在这个问题中看到它here. 有谁知道我做错了什么和/或我能做些什么来解决这个问题?