LNK2011 error but not in debug mode?

Started by
3 comments, last by ryan20fun 12 years, 10 months ago
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


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?
Advertisement
In the C++->Code Generation page, what are the Runtime Library options set to for each configuration? Looks like that could possibly 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.

In the C++->Code Generation page, what are the Runtime Library options set to for each configuration? Looks like that could possibly 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.


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)


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.
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.
are you linking to the lib file in release mode ?

Never say Never, Because Never comes too soon. - ryan20fun

Disclaimer: Each post of mine is intended as an attempt of helping and/or bringing some meaningfull insight to the topic at hand. Due to my nature, my good intentions will not always be plainly visible. I apologise in advance and assure you I mean no harm and do not intend to insult anyone.

This topic is closed to new replies.

Advertisement