如何在CLion中运行SFML,错误未定义引用? [英] How to run SFML in CLion, Error undefined reference to?

查看:194
本文介绍了如何在CLion中运行SFML,错误未定义引用?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是C ++的新手,尝试学习游戏编程,我选择SFML,然后由Jetbrain在CLion上运行,并使用Ubuntu计算机。我按照本教程 SFML和Linux 此处输入我的代码:

I'm new to C++ and try to learn game programming, I choose SFML and run on CLion by Jetbrain and using Ubuntu machine. I following this tutorial SFML and Linux here my code :

#include <SFML/Graphics.hpp>

using namespace sf;

int main() {

RenderWindow window(sf::VideoMode(200, 200), "SFML Work!");
CircleShape shape(100.f);
shape.setFillColor(Color::Green);

while (window.isOpen()) {
    Event event;
    while (window.pollEvent(event)) {
        if (event.type == Event::Closed) {
            window.close();
        }
    }

    window.clear();
    window.draw(shape);
    window.display();
}

return 0;
}

我在CLion上运行时出错

When I run on CLion it error

CMakeFiles/SFMLBasic.dir/main.cpp.o: In function `main': 
undefined reference to `sf::String::String(char const*, std::locale const&)'
undefined reference to `sf::VideoMode::VideoMode(unsigned int, unsigned int, unsigned int)'
undefined reference to `sf::RenderWindow::RenderWindow(sf::VideoMode, sf::String const&, unsigned int, sf::ContextSettings const&)'
...
undefined reference to `sf::Shape::~Shape()'

我如何配置或设置在CLion中运行SFML,我不知道CMAKE可以做什么那?我只通过终端运行,如果运行此命令,它将起作用。

How I config or setup to run SFML in CLion, I don't know CMAKE can do that? I only run by terminal, It work if I run this command.

g++ -c main.cpp
g++ main.o -o sfml-app -lsfml-graphics -lsfml-window -lsfml-system
./sfml-app

如何配置以使用所有引用变量,而无需每次在Terminal中手动进行操作?谢谢。

How to config to use all reference variable without do manual every time in Terminal? Thanks.

推荐答案

您需要在CMakeLists.txt中链接SFML库。

You need to link SFML library in your CMakeLists.txt.

查看CMake target_link_libraries

然后此链接可能有助于您了解如何在CMake中找到SFML库路径。

And this link may be helpful for you to know how to find SFML library path in CMake.

这是FindSFML.cmake模块: https://github.com/LaurentGomila/SFML/blob/master/cmake/Modules/FindSFML.cmake

Here is a FindSFML.cmake module: https://github.com/LaurentGomila/SFML/blob/master/cmake/Modules/FindSFML.cmake

这篇关于如何在CLion中运行SFML,错误未定义引用?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆