【问题标题】:Link Errors w/ SFML 2.4 (C++)带有 SFML 2.4 (C++) 的链接错误
【发布时间】:2018-06-27 00:25:27
【问题描述】:

一段时间以来,我一直在尝试将 SFML 库用于 C++。 但是,每当我尝试运行我的程序时,都会遇到大量围绕未定义符号的构建错误。我正在从 Visual Studio 构建,并且已将包含目录、附加库和 bin 中的所有 DLL 添加到源目录和构建目录中。尽管如此,我还是无法构建程序。

我的代码:

#include <SFML\Graphics.hpp>

int main() {
    sf::RenderWindow window(sf::VideoMode(640, 380), "Test Window");

    while (window.isOpen()) {
        // events

        window.clear();

        // drawing
    }
    system("pause");
}

错误: 包含目录:SFML-2.4.2/include

Lib 目录:SFML-2.4.2/lib

链接器输入:

sfml-main-d.lib
sfml-graphics-d.lib
sfml-window-d.lib
sfml-system-d.lib
sfml-audio-d.lib
sfml-network-d.lib

【问题讨论】:

  • 你使用的是和你的VS版本匹配的SFML SDK吗?
  • 我正在将 SFML Visual C++ 14 与 Visual Studio 2017 一起使用。我获得了可用于 SFML 的最新版本。两者都适用于 Windows。 (即使我有一台 x64 机器以实现兼容性,我也使用 x86 SFML)
  • x86 SFML 在 64 系统上没有问题,但 SFML 版本需要与您的编译器匹配,因此 VS 14 的 SFML 将工作。你必须build SFML yourself
  • 尝试正确排序库,例如网络在顶部,然后是音频图形窗口系统

标签: c++ visual-studio linker-errors sfml build-error


【解决方案1】:

我知道这已经是一岁半了,但我遇到了同样的错误,我已经解决了。 以下 Pastebin 文件是我的配置和任务文件(在我的情况下,Visual Studio Code 版本 1.32.3 可以正常工作,请阅读底部以了解您必须更改的内容) 日期:2019-03-14 电子:3.1.6 铬:66.0.3359.181 Node.js:10.2.0 V8:6.6.345.32 操作系统:Windows_NT x64 10.0.17134

c_cpp_properties.json: https://pastebin.com/3gw8J4d2``
task.json: https://pastebin.com/s1rjswWG``

重要提示: 更改以下内容: (如果您在标准路径上安装了 MinGW)

  • c_cpp_properties.json: K:/libs/SFML-2.5.1/include 必须更改 到你的SFML安装路径,一定要在浏览路径里改!!!
  • tasks.json:

  • “-IK:/libs/SFML-2.5.1/”,将 K:/libs/SFML-2.5.1/include 更改为您的 SFML的安装路径

  • “-LK:/libs/SFML-2.5.1/lib”,再次将K:/libs/SFML-2.5.1/lib改为
    你SFML的安装路径

我犯的几个错误:

  • 我没有删除“-LK:/libs/SFML-2.5.1/lib”中的 K:
  • tasks.json 顶部的命令中没有 g++
  • 我没有使用正确的编译/链接路径(搜索你所有的路径 放弃前在浏览器中使用)

一些有用的链接:

我希望我能帮上忙 如果您有任何问题,可以在 Reddit u/Spagetti_Lord 上给我发消息(最活跃)

【讨论】:

    猜你喜欢
    • 2015-08-18
    • 1970-01-01
    • 2020-07-10
    • 2018-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-30
    • 1970-01-01
    相关资源
    最近更新 更多