gpt4 book ai didi

c++ - 如何在ubuntu中安装SFML?

转载 作者:太空宇宙 更新时间:2023-11-04 03:38:31 52 4
gpt4 key购买 nike

我下载了 SFML,然后将其所有 header 复制到 usr/local/include/ 中,并将其所有库复制到 usr/local/lib/ 中。

我在 Desktop 中有一个名为 ma​​in.cpp 的文件,我想编译它。

首先我这样做了:-

g++ -c main.cpp

之后当我尝试这样做时:-

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

它给了我:-

/usr/local/lib/libsfml-window.so: undefined reference to `udev_device_get_action@LIBUDEV_183'
/usr/local/lib/libsfml-window.so: undefined reference to `udev_list_entry_get_next@LIBUDEV_183'
/usr/local/lib/libsfml-window.so: undefined reference to `udev_unref@LIBUDEV_183'
/usr/local/lib/libsfml-window.so: undefined reference to `udev_list_entry_get_name@LIBUDEV_183'
/usr/local/lib/libsfml-window.so: undefined reference to `udev_enumerate_unref@LIBUDEV_183'
/usr/local/lib/libsfml-window.so: undefined reference to `udev_monitor_unref@LIBUDEV_183'
/usr/local/lib/libsfml-window.so: undefined reference to `udev_new@LIBUDEV_183'
/usr/local/lib/libsfml-window.so: undefined reference to `udev_monitor_receive_device@LIBUDEV_183'
/usr/local/lib/libsfml-graphics.so: undefined reference to `std::__throw_out_of_range_fmt(char const*, ...)@GLIBCXX_3.4.20'
/usr/local/lib/libsfml-window.so: undefined reference to `udev_device_get_devnode@LIBUDEV_183'
/usr/local/lib/libsfml-window.so: undefined reference to `udev_monitor_enable_receiving@LIBUDEV_183'
/usr/local/lib/libsfml-window.so: undefined reference to `udev_enumerate_new@LIBUDEV_183'
/usr/local/lib/libsfml-window.so: undefined reference to `udev_monitor_get_fd@LIBUDEV_183'
/usr/local/lib/libsfml-window.so: undefined reference to `udev_device_unref@LIBUDEV_183'
/usr/local/lib/libsfml-window.so: undefined reference to `udev_device_get_property_value@LIBUDEV_183'
/usr/local/lib/libsfml-window.so: undefined reference to `udev_monitor_filter_add_match_subsystem_devtype@LIBUDEV_183'
/usr/local/lib/libsfml-window.so: undefined reference to `udev_enumerate_get_list_entry@LIBUDEV_183'
/usr/local/lib/libsfml-window.so: undefined reference to `udev_enumerate_scan_devices@LIBUDEV_183'
/usr/local/lib/libsfml-window.so: undefined reference to `udev_enumerate_add_match_subsystem@LIBUDEV_183'
/usr/local/lib/libsfml-window.so: undefined reference to `udev_device_get_syspath@LIBUDEV_183'
/usr/local/lib/libsfml-window.so: undefined reference to `udev_device_get_sysattr_value@LIBUDEV_183'
/usr/local/lib/libsfml-window.so: undefined reference to `udev_monitor_new_from_netlink@LIBUDEV_183'
/usr/local/lib/libsfml-window.so: undefined reference to `udev_device_new_from_syspath@LIBUDEV_183'
/usr/local/lib/libsfml-window.so: undefined reference to `udev_device_get_parent_with_subsystem_devtype@LIBUDEV_183'

我已经正确安装了所有这些必需的依赖项: https://github.com/SFML/SFML/wiki/Tutorial%3A-Installing-SFML-dependencies

我是否错过了任何必需的步骤?

最佳答案

要首先在 Ubuntu 中安装它,请在终端中运行以下命令 -

sudo apt-get install libsfml-dev

确保您已经有编译器(GCC),如果没有,则使用 make 安装

sudo apt-get install build-essential

然后为了测试这一点,创建一个像这样的简单 SFML 应用程序

#include <SFML/Graphics.hpp>

int main(int argc, char const *argv[])
{
sf::RenderWindow window(sf::VideoMode(200,200), "Hello From SFML");
sf::CircleShape shape(100.f);
shape.setFillColor(sf::Color::Magenta);

while (window.isOpen())
{
sf::Event event;
while (window.pollEvent(event))
{
if(event.type == sf::Event::Closed){
window.close();
}
}
window.clear();
window.draw(shape);
window.display();

}

return 0;
}

现在在存储库中创建一个与 main.cpp 相同的 makefile

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

run:
./app

现在编译它,运行以下命令

make compile

最后运行以下命令

make run

关于c++ - 如何在ubuntu中安装SFML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30696114/

52 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com