Jump to content

View more

Image of the Day

WIP title screen for #DeathOfAPartisan #screenshotsaturday #gamedev https://t.co/qJNhfZCvd4
IOTD | Top Screenshots

The latest, straight to your Inbox.

Subscribe to GameDev.net Direct to receive the latest updates and exclusive content.

Sign up now

Same Problem with every Project

4: Adsense

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
2 replies to this topic

#1 SnakeMaster   Members   


Posted 06 February 2013 - 12:16 PM



As i mentioned in the Title i keep geeting the same issue with every project. Everytime i buy a book with a CD in it, having all the code in it. I always enjoy to start it for the first time. But always it comes up with errors when i try to compile does Projects. If i start something new like learn how to programm with SDL. Then i get a Linking problem or a did not found error. This keeps annoying me, and till now no one has shown me how to Logicaly search for the errors in these Projects.


Do you have any ideas what exactly to do? I normaly always copy the front part of the error and go search on google. But most don't even give good hints on what to exactly to do.


As for a Example il give you this.




This would be the step i tried and this :



MSVCRT.lib(crtexe.obj) : error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup


Is what i got in response. It just pretty much annoys me that these errors show up and i have no clue what to do, or what they mean.


I hope you guys can help me


#2 Jutaris   Members   


Posted 06 February 2013 - 01:57 PM

What does your main function look like?


if it's just int main() you could try setting the subsystem to console:


Project -> Properties -> Configuration Properties -> Linker -> System

  • Change SubSystem to Console.

My Site -- My Music  -- My Ramblings -- My Game

 Basic Flying Rules:Try to stay in the middle of the air. Do not go near the edges of it. The edges of the air can be recognized by the appearance of ground, buildings, sea, trees and interstellar space. It is much more difficult to fly there.

Come join us for some friendly game dev discussions over in XNA Chat!

#3 Khatharr   Members   


Posted 06 February 2013 - 07:21 PM

MSVCRT.lib is the "MicroSoft Visual C RunTime". It's related to Windows rather than C/C++, which is why you don't see it discussed a lot in C/C++ tutorials.

Basically what this error is saying is that it's trying to wrap your program with the components needed to make a Windows program, but it can't find your main() function. If you're trying to write a console program you need to have a correctly implemented main() as your entry point. If you're trying to write a non-console program then you need to change your configuration in Visual Studio to let the compiler know that (and it will look for WinMain() instead of main()). If you're writing a dll or lib then you also need to change the configuration accordingly to let the compiler know about it.

Dissecting this error message:


There was an error while attempting to work with MSVCRT.lib in order to create crtexe.obj.

"error LNK2019"

This is the error code. LNK signifies that it's a linker error. The linker is responsible for connecting functions and objects between different compilation units (obj files). The compiler turns your input files into .obj files full of bytecode and then the linker glues the .obj files together to create a module (exe/lib/dll or whatever). The linker's main job is to create a table of 'symbols' that each .obj file contains so that when they get put together those symbols can be translated into addresses, allowing functions in one compilation unit to call functions in a different compilation unit and etc.

"unresolved external symbol _main"

I could not find the symbol 'main'. (In this case a 'symbol' is the name of a function or variable that needs to be shared between compilation units.)

"referenced in function ___tmainCRTStartup"

This is the function that was asking for that symbol. ('mainCRTStartup' is the part of the Windows-related code that calls your main function when the program starts.)

Too much info?

void hurrrrrrrr() {__asm sub [ebp+4],5;}

There are ten kinds of people in this world: those who understand binary and those who don't.

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.