Sign in to follow this  
MisteRnoOrOnha

[SFML]VS2010 Linker errors

Recommended Posts

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?

Share this post


Link to post
Share on other sites

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.

Edited by Cornstalks

Share this post


Link to post
Share on other sites

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.

Edited by Nercury

Share this post


Link to post
Share on other sites

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).

Share this post


Link to post
Share on other sites

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 ==========
Edited by MisteRnoOrOnha

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this