Sign in to follow this  
avocados

LNK2011 error but not in debug mode?

Recommended Posts

[code]1>controls.obj : error LNK2001: unresolved external symbol @__security_check_cookie@4
1>controls.obj : error LNK2001: unresolved external symbol __imp__free
1>controls.obj : error LNK2001: unresolved external symbol __imp__exit
1>Geometry.obj : error LNK2001: unresolved external symbol __imp__ceil
1>Geometry.obj : error LNK2001: unresolved external symbol __imp__malloc
1>IO.obj : error LNK2001: unresolved external symbol __imp__fopen_s
1>IO.obj : error LNK2001: unresolved external symbol __imp__printf
1>IO.obj : error LNK2001: unresolved external symbol __imp__fopen
1>IO.obj : error LNK2001: unresolved external symbol __imp__fread
1>IO.obj : error LNK2001: unresolved external symbol __imp__fwrite
1>IO.obj : error LNK2001: unresolved external symbol __imp__ftell
1>IO.obj : error LNK2001: unresolved external symbol __imp__fseek
1>IO.obj : error LNK2001: unresolved external symbol __imp__fclose
1>main.obj : error LNK2001: unresolved external symbol __imp____iob_func
1>main.obj : error LNK2001: unresolved external symbol __imp__fprintf
1>LINK : error LNK2001: unresolved external symbol _WinMainCRTStartup[/code]

I don't understand these errors, this only happens when I try to compile a release build. All the settings in Visual Stuido 2010 linker pages are the same in debug and release though. Setting ignore default libraries on and off makes no difference in release or debug. Release still has errors and debug still compiles fine. Are there relevant settings outside of linker?

Share this post


Link to post
Share on other sites
In the C++->Code Generation page, what are the Runtime Library options set to for each configuration? Looks like that could [i]possibly[/i] be something to do with these errors.

You probably want /MD for release and /MDd for debug, unless you are statically linking, in which case /MT and /MTd respectively.

Also, are you linking to any third party libs in this project? I've seen these kinds of errors when trying to link a lib that was compiled with /MD to a project compiled with /MT and vice versa.

Share this post


Link to post
Share on other sites
[quote name='Aardvajk' timestamp='1307146333' post='4819268']
In the C++->Code Generation page, what are the Runtime Library options set to for each configuration? Looks like that could [i]possibly[/i] be something to do with these errors.

You probably want /MD for release and /MDd for debug, unless you are statically linking, in which case /MT and /MTd respectively.

Also, are you linking to any third party libs in this project? I've seen these kinds of errors when trying to link a lib that was compiled with /MD to a project compiled with /MT and vice versa.
[/quote]

[code]Changes from debug --> release:

Enable Minimal Rebuild yes --> no
Basic Runtime Checks Both (/RTC1, equiv. to /RTCsu) (/RTC1) --> default
Runtime Library /MDd --> /MD
Enable Function Level Linking blank --> yes(/Gy)[/code]

Oh, I am using SDL. I compiled the SDL lib on another machine and that machine has no errors building a release or debug. My laptop is where I'm seeing these build errors in release but not debug. My source files make use of stdio and malloc but maybe SDL does too. Ugh, I don't really understand what has happened. Thought I was in the clear when I got the debug build to compile.

Share this post


Link to post
Share on other sites
Are you sure you had the same runtime library settings etc set on the machine you compiled the SDL lib on as on your laptop. I'm afraid I'm guessing a bit here but it does look feasible to me that this is a conflict between settings of the lib and the project.

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