【问题标题】:Unresolved External Symbol: LNK 2001未解析的外部符号:LNK2001
【发布时间】:2015-12-08 17:15:54
【问题描述】:

我刚刚使用 NuGET 包管理器安装了 SFML 包。安装后。我从其官方页面运行了一个基本程序。只需复制和粘贴。

#include <SFML/Graphics.hpp>

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

    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;
}

当我运行它时,我得到 LNK 2001 错误。说明未解析的外部符号。

我自己的尝试

我在谷歌上搜索,发现问题出在 lib 文件上。我在包文件夹中找到了文件,它们都没有在工具中列出,Project->Properties。

尝试添加 SFML_DYNAMIC,无效;

【问题讨论】:

    标签: c++ visual-studio-2015 sfml nuget-package


    【解决方案1】:

    您需要将适当的库添加到项目中的链接器依赖项。将库名称添加到 Project->Properties->Linker->Input->Additional Dependencies。

    这里是 SFML tutorial 配置 Visual Studio 项目。

    【讨论】:

    • 现在它说无法打开 sfml-graphics.lib,然后尝试 sfml-graphics-d.lib,然后尝试 -s,然后尝试 -s-d.lib。他们都没有工作
    • 我不考虑将 SFML 安装到我的系统中。我只想安装到这个项目中。
    • 如果找不到库,您还需要指定库的路径到链接器->常规->附加库目录。
    • 也这样做了。当我自己安装 SFML 时,这种方式效果很好。但是使用 NuGet,它将所有 SFML 安装在不同的目录中
    猜你喜欢
    • 2020-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-08
    • 2014-07-26
    • 2012-05-03
    相关资源
    最近更新 更多