Gotenks
@Gotenks
хуцкр из 23 школы

Что делать если линковщик ругается на «неразрешённый внешний символ»?

код
#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;
}
вывод компилятора
1>------ Сборка начата: проект: Game1, Конфигурация: Debug Win32 ------
1>Game1.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall sf::String::String(char const *,class std::locale const &)" (??0String@sf@@QAE@PBDABVlocale@std@@@Z) в функции _main
1>Game1.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall sf::VideoMode::VideoMode(unsigned int,unsigned int,unsigned int)" (??0VideoMode@sf@@QAE@III@Z) в функции _main
1>Game1.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: void __thiscall sf::Window::close(void)" (?close@Window@sf@@QAEXXZ) в функции _main
1>Game1.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: bool __thiscall sf::Window::isOpen(void)const " (?isOpen@Window@sf@@QBE_NXZ) в функции _main
1>Game1.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: bool __thiscall sf::Window::pollEvent(class sf::Event &)" (?pollEvent@Window@sf@@QAE_NAAVEvent@2@@Z) в функции _main
1>Game1.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: void __thiscall sf::Window::display(void)" (?display@Window@sf@@QAEXXZ) в функции _main
1>Game1.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall sf::Color::Color(unsigned char,unsigned char,unsigned char,unsigned char)" (??0Color@sf@@QAE@EEEE@Z) в функции _main
1>Game1.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: virtual __thiscall sf::Shape::~Shape(void)" (??1Shape@sf@@UAE@XZ) в функции "public: virtual __thiscall sf::CircleShape::~CircleShape(void)" (??1CircleShape@sf@@UAE@XZ)
1>Game1.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: void __thiscall sf::Shape::setFillColor(class sf::Color const &)" (?setFillColor@Shape@sf@@QAEXABVColor@2@@Z) в функции _main
1>Game1.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall sf::CircleShape::CircleShape(float,unsigned int)" (??0CircleShape@sf@@QAE@MI@Z) в функции _main
1>Game1.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: void __thiscall sf::RenderTarget::clear(class sf::Color const &)" (?clear@RenderTarget@sf@@QAEXABVColor@2@@Z) в функции _main
1>Game1.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: void __thiscall sf::RenderTarget::draw(class sf::Drawable const &,class sf::RenderStates const &)" (?draw@RenderTarget@sf@@QAEXABVDrawable@2@ABVRenderStates@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 &)" (??0RenderWindow@sf@@QAE@VVideoMode@1@ABVString@1@IABUContextSettings@1@@Z) в функции _main
1>Game1.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: virtual __thiscall sf::RenderWindow::~RenderWindow(void)" (??1RenderWindow@sf@@UAE@XZ) в функции _main
1>Game1.obj : error LNK2001: неразрешенный внешний символ ""public: static class sf::RenderStates const sf::RenderStates::Default" (?Default@RenderStates@sf@@2V12@B)"
1>Game1.obj : error LNK2001: неразрешенный внешний символ ""public: static class sf::Color const sf::Color::Green" (?Green@Color@sf@@2V12@B)"
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 ==========

Хотя мне говорили то что скрин никому тут не нужен, прикладываю его сюда, чтобы в случае если я опять сделал что то не так, вы могли посмотреть ситуацию которая происходит на моём экране. Надеюсь за изображение спрятанное в спойлер вы ругаться не будете.
скрин моего окна
5c3771a9c5ccc006908736.jpeg
скрины настроек проекта
5c3774679c9c2166958393.jpeg5c3774724f09d763404812.jpeg5c37747a12f66659349924.jpeg

P. S. Я понял что тут что то не так с разрядностью библиотек, но что именно не знаю. Подскажите пожалуйста.
  • Вопрос задан
  • 136 просмотров
Пригласить эксперта
Ответы на вопрос 1
@res2001
Developer, ex-admin
Вы подключили x64 библиотеку, а собираете x32 проект, естественно компилятору это не нравится.
Подключите x32 версию библиотеки, или собирайте проект как x64.
На самом деле можно делать обе версии и в каждой задать использование правильной версии библиотеки.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
Green Money Новосибирск
от 120 000 руб.
Green Money Кемерово
от 120 000 руб.
Hotger Ростов-на-Дону
от 60 000 до 120 000 руб.
18 янв. 2019, в 21:37
1500 руб./за проект
18 янв. 2019, в 19:30
150000 руб./за проект
18 янв. 2019, в 18:43
1000 руб./в час