Netbeans C ++项目上的SFML错误

问题描述 投票:1回答:1

我正在使用Netbeans开发C ++(在Windows上。我正在尝试使SMFL正常工作。

#include <iostream>
#include <cstdlib>
#include <time.h>
#include <SFML/Graphics.hpp>
#include <SFML/Window.hpp>

using namespace std;

/*
 * 
 */
int main(int argc, char** argv) 
{
    RenderWindow window(VideoMode(600, 800), "TITLE");
    cout << "Hello World!";

    return 0;
}

启动应用程序时出现以下错误。

main.cpp:31: undefined reference to `__imp__ZN2sf6StringC1EPKcRKSt6locale'
main.cpp:31: undefined reference to `__imp__ZN2sf9VideoModeC1Ejjj'
main.cpp:31: undefined reference to `__imp__ZN2sf12RenderWindowC1ENS_9VideoModeERKNS_6StringEjRKNS_15ContextSettingsE'
main.cpp:31: undefined reference to `__imp__ZN2sf12RenderWindowD1Ev'
main.cpp:31: undefined reference to `__imp__ZN2sf12RenderWindowD1Ev'

第31行是

RenderWindow window(VideoMode(600, 800), "TITLE");

我在C ++编译器中添加了SFML / include dir,在链接器中添加了SFML / lib,可以帮我吗?

编辑:尝试添加lib和包含折叠后,现在我得到:“加载共享库时出错:?:无法打开共享库文件:没有这样的文件或目录”

c++ netbeans sfml
1个回答
0
投票

您必须告诉NetBeans三件事:

  • 带有SFML的目录包含文件
  • 带有SFML库的目录
  • 要链接的SFML库列表

看来您已经知道如何做#1了,但为防万一,我将重复所有操作。所有这些设置都应使用项目属性完成-右键单击您的项目名称,然后打开属性设置窗口。您需要在两个窗格中进行添加-“ C ++编译器”和“链接器”。

“ C ++编译器”窗格是您首先需要的。找到“包含目录”行,然后在带有三个点的正方形上单击(目录选择器)-然后添加SFML“包含”目录。就我而言,该窗格如下:

C++ Compiler Setup Pane

“链接器”窗格是下一个。找到“其他库目录”并添加SFML“ lib”目录-也使用目录选择器。然后找到“库”行,并至少添加三个库-“ sfml-graphics”,“ sfml-window”和“ sfml-system”。为此,您需要使用稍微复杂一些的选择器,您需要的按钮是“添加库...”-请在此处查看第三张图片。 库的顺序很重要。就我而言,该窗格如下:

Linker Setup Pane

这是库选择器-使用按钮“添加库...”

Libraries Chooser

同样在您的示例中,对于SFML类型,您需要使用前缀“ sf ::”:

sf::RenderWindow window(sf::VideoMode(600, 800), "TITLE");

希望对您有帮助。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.