G
G
Gotenks2019-01-10 19:26:57
C++ / C#
Gotenks, 2019-01-10 19:26:57

What to do if the linker swears at "unresolved external symbol"?

the code
#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;
}
compiler output
1>------ Сборка начата: проект: Game1, Конфигурация: Debug Win32 ------
1>Game1.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall sf::String::String(char const *,class std::locale const &)" (??0[email protected]@@[email protected]@std@@@Z) в функции _main
1>Game1.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall sf::VideoMode::VideoMode(unsigned int,unsigned int,unsigned int)" (??0[email protected]@@[email protected]@Z) в функции _main
1>Game1.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: void __thiscall sf::Window::close(void)" ([email protected]@[email protected]@QAEXXZ) в функции _main
1>Game1.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: bool __thiscall sf::Window::isOpen(void)const " ([email protected]@[email protected]@QBE_NXZ) в функции _main
1>Game1.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: bool __thiscall sf::Window::pollEvent(class sf::Event &)" ([email protected]@[email protected]@[email protected]2@@Z) в функции _main
1>Game1.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: void __thiscall sf::Window::display(void)" ([email protected]@[email protected]@QAEXXZ) в функции _main
1>Game1.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall sf::Color::Color(unsigned char,unsigned char,unsigned char,unsigned char)" (??0[email protected]@@[email protected]@Z) в функции _main
1>Game1.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: virtual __thiscall sf::Shape::~Shape(void)" (??1[email protected]@@[email protected]) в функции "public: virtual __thiscall sf::CircleShape::~CircleShape(void)" (??1[email protected]@@[email protected])
1>Game1.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: void __thiscall sf::Shape::setFillColor(class sf::Color const &)" ([email protected]@[email protected]@[email protected]2@@Z) в функции _main
1>Game1.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall sf::CircleShape::CircleShape(float,unsigned int)" (??0[email protected]@@[email protected]@Z) в функции _main
1>Game1.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: void __thiscall sf::RenderTarget::clear(class sf::Color const &)" ([email protected]@[email protected]@[email protected]2@@Z) в функции _main
1>Game1.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: void __thiscall sf::RenderTarget::draw(class sf::Drawable const &,class sf::RenderStates const &)" ([email protected]@[email protected]@[email protected]2@[email protected]2@@Z) в функции _main
1>Game1.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall sf::RenderWindow::RenderWindow(class sf::VideoMode,class sf::String const &,unsigned int,struct sf::ContextSettings const &)" (??0[email protected]@@[email protected]@1@[email protected]1@[email protected]1@@Z) в функции _main
1>Game1.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: virtual __thiscall sf::RenderWindow::~RenderWindow(void)" (??1[email protected]@@[email protected]) в функции _main
1>Game1.obj : error LNK2001: неразрешенный внешний символ ""public: static class sf::RenderStates const sf::RenderStates::Default" ([email protected]@[email protected]@[email protected])"
1>Game1.obj : error LNK2001: неразрешенный внешний символ ""public: static class sf::Color const sf::Color::Green" ([email protected]@[email protected]@[email protected])"
1>E:\CPP\SFML-2.5.1\lib\sfml-graphics.lib : warning LNK4272: тип компьютера библиотеки "x64" конфликтует с типом целевого компьютера "x86"
1>E:\CPP\SFML-2.5.1\lib\sfml-window.lib : warning LNK4272: тип компьютера библиотеки "x64" конфликтует с типом целевого компьютера "x86"
1>E:\CPP\SFML-2.5.1\lib\sfml-system.lib : warning LNK4272: тип компьютера библиотеки "x64" конфликтует с типом целевого компьютера "x86"
1>E:\CPP\Game1\Debug\Game1.exe : fatal error LNK1120: неразрешенных внешних элементов: 16
1>Сборка проекта "Game1.vcxproj" завершена с ошибкой.
========== Сборка: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========

Although I was told that nobody needs the screen here, I am attaching it here so that if I did something wrong again, you can see the situation that is happening on my screen. I hope you will not swear for the image hidden in the spoiler.
screenshot of my window
5c3771a9c5ccc006908736.jpeg
project settings screenshots
5c3774679c9c2166958393.jpeg5c3774724f09d763404812.jpeg5c37747a12f66659349924.jpeg

PS I realized that there is something wrong with the capacity of the libraries, but I don’t know what exactly. Tell me please.

Answer the question

In order to leave comments, you need to log in

1 answer(s)
R
res2001, 2019-01-10
@res2001

You have included an x64 library, but you are compiling an x32 project, naturally the compiler does not like it.
Connect the x32 version of the library, or build the project as x64.
In fact, you can make both versions and set each to use the correct version of the library.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question