[SFML]VS2010 Linker errors

Started by
8 comments, last by MisteRnoOrOnha 11 years, 1 month ago

Hello, i'm trying to set up an development enviroment with VS2010 but when i'm trying to compile my SFML code(http://www.sfml-dev.org/tutorials/2.0/./start-vc.php) i toke this errors:

1>------ Build started: Project: sfml-app, Configuration: Debug Win32 ------
1> main.cpp
1>main.obj : error LNK2001: unresolved external symbol "public: static class sf::RenderStates const sf::RenderStates::Default" (?Default@RenderStates@sf@@2V12@B)
1>main.obj : error LNK2001: unresolved external symbol "public: static class sf::Color const sf::Color::Green" (?Green@Color@sf@@2V12@B)
1>MSVCRTD.lib(crtexew.obj) : error LNK2019: unresolved external symbol _WinMain@16 referenced in function ___tmainCRTStartup
1>c:\users\sandra\documents\visual studio 2010\Projects\sfml-app\Debug\sfml-app.exe : fatal error LNK1120: 3 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

I follow the tutorial but don't toke an great result, can anyone help me?

Advertisement

When you created the project, did you select "Console Application"? Because if you didn't (that is, if you chose "Windows Application"), the tutorial says:

If you chose to create a "Windows application" project, then the entry point of your code has to be the "WinMain" function instead of "main". Since it's Windows specific, and your code would therefore not compile on Linux or Mac OS X, SFML provides a way to keep a standard "main" entry point in this case: link your project to the sfml-main module ("sfml-main-d.lib" in Debug, "sfml-main.lib" in Release), the same way you linked sfml-graphics, sfml-window and sfml-system.

[size=2][ I was ninja'd 71 times before I stopped counting a long time ago ] [ f.k.a. MikeTacular ] [ My Blog ] [ SWFer: Gaplessly looped MP3s in your Flash games ]

Then is better i create an console application? CLR Console Application at VS2010?

Then is better i create an console application? CLR Console Application at VS2010?

Avoid CLR: CLR is Common Language Runtime, it is for coding .NET applications with C++.

Why not make an empty project, add main.cpp file with main method, and link your project with sfml-main.lib as it says in doc.

Then is better i create an console application? CLR Console Application at VS2010?

It doesn't really matter (console application vs windows application), so long as you follow the directions in the tutorial. An empty, plain console application will probably be a little bit simpler. And as Nercury says, stay away from the CLR (unless you know what it is and you know you want it).

[size=2][ I was ninja'd 71 times before I stopped counting a long time ago ] [ f.k.a. MikeTacular ] [ My Blog ] [ SWFer: Gaplessly looped MP3s in your Flash games ]

I created an new window projected and linked libraries(sfml-main.lib too) and i toke this errors:

1>------ Build started: Project: sfml-app, Configuration: Debug Win32 ------
1> main.cpp
1>main.obj : error LNK2001: unresolved external symbol "public: static class sf::RenderStates const sf::RenderStates::Default" (?Default@RenderStates@sf@@2V12@B)
1>main.obj : error LNK2001: unresolved external symbol "public: static class sf::Color const sf::Color::Green" (?Green@Color@sf@@2V12@B)
1>c:\users\sandra\documents\visual studio 2010\Projects\sfml-app\Debug\sfml-app.exe : fatal error LNK1120: 2 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Are you sure that your debug configuration (the one you're trying to build with right now) is linking to the debug version of the libraries (the ones ending with -d)?

Are you trying to statically link to SFML? If so, are you linking to the -s version of the libraries, and are you adding SFML_STATIC to your preprocessor definitions?

There are several ways to set up a project that uses SFML, and the tutorial talks about many of them. It would help a ton if you said exactly what you've done and how you've set up your project (maybe take screenshots of each configuration option). How are you linking? What are you linking to? What, if any, preprocessor definitions have you added? The devil is in the little details, and it without knowing the exact details we're just stuck here shooting in the dark.

[size=2][ I was ninja'd 71 times before I stopped counting a long time ago ] [ f.k.a. MikeTacular ] [ My Blog ] [ SWFer: Gaplessly looped MP3s in your Flash games ]

Problem solved thanks Cornstalks and Nercury.

Problem solved thanks Cornstalks and Nercury.

It would be great if you could share what you did to solve it for any future people who find this thread via Google.
[size=2][ I was ninja'd 71 times before I stopped counting a long time ago ] [ f.k.a. MikeTacular ] [ My Blog ] [ SWFer: Gaplessly looped MP3s in your Flash games ]

I configured the Debug and Release to use the right lib's(sfml-xxx-d.lib for debug and sfml-xxx-s.lib for release) and then linked sfml-main.lib into linker settings. I added SFML_STATIC to Preprocessor.

This topic is closed to new replies.

Advertisement