SFML loadFromFile未定义引用
SFML loadFromFile undefined reference
我正在学习使用SFML制作一款小游戏的想法,到目前为止,我已经创建了一个窗口,并打乱了它的设置,并设置了一个绘制循环和事件处理程序。
问题开始了,一旦我试图添加我的第一个纹理使用以下代码:
#include "SpaceNomad.ih"
void MainMenu(GameEngine &Engine)
{
sf::Texture texture;
if(!texture.loadFromFile("MenuBackGround.png"))
{
cout << "couldn't load background texturen";
}
sf::Sprite *sprite = new sf::Sprite;
sprite->setTexture(texture);
Engine.AddEntity(sprite, 5);
}
在不同的图像之外,字面上是SFML教程页面上给出的示例代码。
当我尝试编译这个时,我得到以下错误:
||=== Build: Debug in space nomad (compiler: GNU GCC Compiler) ===|
objDebugprojectssttake2MainMenu.o||In function `Z8MainMenuR10GameEngine':|
D:projectssttake2MainMenu.cpp|7|undefined reference to `_imp___ZN2sf7Texture12loadFromFileERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_4RectIiEE'|
||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
我已经检查了所有的sfml库都包含在构建选项中(我使用code::Blocks with GCC MinGW)。
https://drive.google.com/file/d/0B4qzXcgqbLZtcHJWUy1vSUhpdVk/view?usp=sharing我见过的其他主题处理人们自己创建的函数的未定义引用,但这里我使用的是一个库。
编辑:我刚刚尝试了基本的形状从相同的库:
sf::CircleShape *shape = new sf::CircleShape(50);
// set the shape color to green
shape->setFillColor(sf::Color(100, 250, 50));
Engine.AddEntity(shape, 5);
您使用的SFML库是用不同的运行时或不同的运行时ABI编译的,而不是链接应用程序。
如果您的SFML库没有使用与您相同的编译器编译,那么您需要重新构建。
如果你在你的应用程序上设置了任何特殊的标志(例如不同的ABI, c++ 14等),你将不得不用相同的标志来重建SFML,或者从你的项目中删除它们。
它也只是偶尔发生,因为它不影响整个运行时库,但std::string
等部分在调用loadFromFile
函数时使用。
相关文章:
- 编译C++时未定义的引用
- 如何修复此错误:未定义对"距离(浮点数,浮点数,浮点数,浮点数,浮点数)"的引用
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- 对C宏的未定义引用,但在定义它时会出现重新定义错误
- 未定义的引用在哪里
- 编译时的 CImg 库返回对"__imp_SetDIBitsToDevice"的未定义引用
- 对Py_Initialize()的未定义引用
- 使用mysql c++连接器的未定义引用
- 未定义的引用 .. 使用 OpenCV 编译 C++ 代码时,从命令行
- 对 Scalar ::Scalar() 的未定义引用
- 已定义函数时出现 G++ "未定义的引用"错误
- 链接 cmake 时出现未定义的引用错误
- 对复制 CTOR 和 CTOR 的未定义引用
- 错误:未定义对'oboe::AudioStreamBuilder::openStream(oboe::AudioStream**)'的引用
- 右值引用未定义的行为
- 对"vtable for DigitalClock"的未定义引用 - 未定义对"DigitalClock::staticMetaObject"的引用 - Qt
- 函数类型到函数类型的引用:未定义的引用
- avcodec_alloc_context引用未定义,但ffmpeg链接顺序正确
- 从c++调用Fortran子程序,链接时引用未定义
- 枚举引用未定义,但位于包含的头文件中