Linker errors between multiple projects in Visual C++ - visual-studio

I have a solution with multiple projects. I have a "main" project, which acts as a menu and from there, the user can access any of the other projects. On this main project, I get linker errors for every function called. How do I avoid these linker errors? I set the project dependencies already in the "Project Dependencies..." dialog.
Thanks
EDIT -- I did as suggested and added the output folder to the linker's additional directories. Now, however, I get a million errors as follows:
3>msvcprtd.lib(MSVCP90D.dll) : error LNK2005: "public: void __thiscall std::basic_ios >::setstate(int,bool)" (?setstate#?$basic_ios#DU?$char_traits#D#std###std##QAEXH_N#Z) already defined in panels.lib(panel_main.obj)
3>msvcprtd.lib(MSVCP90D.dll) : error LNK2005: "public: int __thiscall std::ios_base::width(int)" (?width#ios_base#std##QAEHH#Z) already defined in panels.lib(panel_main.obj)
3>msvcprtd.lib(MSVCP90D.dll) : error LNK2005: "public: int __thiscall std::basic_streambuf >::sputn(char const *,int)" (?sputn#?$basic_streambuf#DU?$char_traits#D#std###std##QAEHPBDH#Z) already defined in panels.lib(panel_main.obj)
3>msvcprtd.lib(MSVCP90D.dll) : error LNK2005: "public: static bool __cdecl std::char_traits::eq_int_type(int const &,int const &)" (?eq_int_type#?$char_traits#D#std##SA_NABH0#Z) already defined in panels.lib(panel_main.obj)
3>msvcprtd.lib(MSVCP90D.dll) : error LNK2005: "public: static int __cdecl std::char_traits::eof(void)" (?eof#?$char_traits#D#std##SAHXZ) already defined in panels.lib(panel_main.obj)
3>msvcprtd.lib(MSVCP90D.dll) : error LNK2005: "public: int __thiscall std::basic_streambuf >::sputc(char)" (?sputc#?$basic_streambuf#DU?$char_traits#D#std###std##QAEHD#Z) already defined in panels.lib(panel_main.obj)
3>msvcprtd.lib(MSVCP90D.dll) : error LNK2005: "public: class std::basic_streambuf > * __thiscall std::basic_ios >::rdbuf(void)const " (?rdbuf#?$basic_ios#DU?$char_traits#D#std###std##QBEPAV?$basic_streambuf#DU?$char_traits#D#std###2#XZ) already defined in panels.lib(panel_main.obj)
3>msvcprtd.lib(MSVCP90D.dll) : error LNK2005: "public: char __thiscall std::basic_ios >::fill(void)const " (?fill#?$basic_ios#DU?$char_traits#D#std###std##QBEDXZ) already defined in panels.lib(panel_main.obj)
3>msvcprtd.lib(MSVCP90D.dll) : error LNK2005: "public: int __thiscall std::ios_base::flags(void)const " (?flags#ios_base#std##QBEHXZ) already defined in panels.lib(panel_main.obj)
3>msvcprtd.lib(MSVCP90D.dll) : error LNK2005: "public: int __thiscall std::ios_base::width(void)const " (?width#ios_base#std##QBEHXZ) already defined in panels.lib(panel_main.obj)
3>msvcprtd.lib(MSVCP90D.dll) : error LNK2005: "public: static unsigned int __cdecl std::char_traits::length(char const *)" (?length#?$char_traits#D#std##SAIPBD#Z) already defined in panels.lib(panel_main.obj)
3>msvcprtd.lib(MSVCP90D.dll) : error LNK2005: "public: class std::basic_ostream > & __thiscall std::basic_ostream >::flush(void)" (?flush#?$basic_ostream#DU?$char_traits#D#std###std##QAEAAV12#XZ) already defined in panels.lib(panel_main.obj)
3>msvcprtd.lib(MSVCP90D.dll) : error LNK2005: "public: class std::basic_ostream > * __thiscall std::basic_ios >::tie(void)const " (?tie#?$basic_ios#DU?$char_traits#D#std###std##QBEPAV?$basic_ostream#DU?$char_traits#D#std###2#XZ) already defined in panels.lib(panel_main.obj)
3>msvcprtd.lib(MSVCP90D.dll) : error LNK2005: "public: bool __thiscall std::ios_base::good(void)const " (?good#ios_base#std##QBE_NXZ) already defined in panels.lib(panel_main.obj)
3>msvcprtd.lib(MSVCP90D.dll) : error LNK2005: "public: void __thiscall std::basic_ostream >::_Osfx(void)" (?_Osfx#?$basic_ostream#DU?$char_traits#D#std###std##QAEXXZ) already defined in panels.lib(panel_main.obj)
3>msvcprtd.lib(MSVCP90D.dll) : error LNK2005: "public: void __thiscall std::basic_streambuf >::_Lock(void)" (?_Lock#?$basic_streambuf#DU?$char_traits#D#std###std##QAEXXZ) already defined in panels.lib(panel_main.obj)
3>msvcprtd.lib(MSVCP90D.dll) : error LNK2005: "public: void __thiscall std::basic_streambuf >::_Unlock(void)" (?_Unlock#?$basic_streambuf#DU?$char_traits#D#std###std##QAEXXZ) already defined in panels.lib(panel_main.obj)
3>msvcprtd.lib(MSVCP90D.dll) : error LNK2005: "public: class std::locale::facet * __thiscall std::locale::facet::_Decref(void)" (?_Decref#facet#locale#std##QAEPAV123#XZ) already defined in panels.lib(panel_main.obj)
3>libcpmtd.lib(ios.obj) : error LNK2005: "private: static void __cdecl std::ios_base::_Ios_base_dtor(class std::ios_base *)" (?_Ios_base_dtor#ios_base#std##CAXPAV12##Z) already defined in msvcprtd.lib(MSVCP90D.dll)
3>libcpmtd.lib(ios.obj) : error LNK2005: "public: static void __cdecl std::ios_base::_Addstd(class std::ios_base *)" (?_Addstd#ios_base#std##SAXPAV12##Z) already defined in msvcprtd.lib(MSVCP90D.dll)
3>libcpmtd.lib(locale0.obj) : error LNK2005: "void __cdecl _AtModuleExit(void (__cdecl*)(void))" (?_AtModuleExit##YAXP6AXXZ#Z) already defined in msvcprtd.lib(locale0_implib.obj)
3>libcpmtd.lib(locale0.obj) : error LNK2005: __Fac_tidy already defined in msvcprtd.lib(locale0_implib.obj)
3>libcpmtd.lib(locale0.obj) : error LNK2005: "private: static void __cdecl std::locale::facet::facet_Register(class std::locale::facet *)" (?facet_Register#facet#locale#std##CAXPAV123##Z) already defined in msvcprtd.lib(locale0_implib.obj)
3>libcpmtd.lib(locale0.obj) : error LNK2005: "private: static class std::locale::_Locimp * __cdecl std::locale::_Getgloballocale(void)" (?_Getgloballocale#locale#std##CAPAV_Locimp#12#XZ) already defined in msvcprtd.lib(MSVCP90D.dll)
3>libcpmtd.lib(locale0.obj) : error LNK2005: "private: static class std::locale::_Locimp * __cdecl std::locale::_Init(void)" (?_Init#locale#std##CAPAV_Locimp#12#XZ) already defined in msvcprtd.lib(MSVCP90D.dll)
3>libcpmtd.lib(locale0.obj) : error LNK2005: "public: static void __cdecl std::_Locinfo::_Locinfo_ctor(class std::_Locinfo *,class std::basic_string,class std::allocator > const &)" (?_Locinfo_ctor#_Locinfo#std##SAXPAV12#ABV?$basic_string#DU?$char_traits#D#std##V?$allocator#D#2##2##Z) already defined in msvcprtd.lib(MSVCP90D.dll)
3>libcpmtd.lib(locale0.obj) : error LNK2005: "public: static void __cdecl std::_Locinfo::_Locinfo_dtor(class std::_Locinfo *)" (?_Locinfo_dtor#_Locinfo#std##SAXPAV12##Z) already defined in msvcprtd.lib(MSVCP90D.dll)
3>libcpmtd.lib(xlock.obj) : error LNK2005: "public: __thiscall std::_Lockit::_Lockit(int)" (??0_Lockit#std##QAE#H#Z) already defined in msvcprtd.lib(MSVCP90D.dll)
3>libcpmtd.lib(xlock.obj) : error LNK2005: "public: __thiscall std::_Lockit::~_Lockit(void)" (??1_Lockit#std##QAE#XZ) already defined in msvcprtd.lib(MSVCP90D.dll)

It is difficult to answer without knowing all the details about your solution, but I will assume your "other" project are set up to produce a .lib file, and the main project then links all these lib files. If that is the case then a possible cause for the errors you are getting is that your projects link to different versions of the runtime library.
From Microsoft's documentation, "All modules passed to a given invocation of the linker must have been compiled with the same run-time library compiler option (/MD, /MT, /LD)."
Try to change all the projects to use the same version of the runtime library. In Visual Studio 2010, this is in the Project's Properties | Configuration Properties | C/C++ | Code Generation | Runtime Library. Choose either Multi-threaded Debug DLL or Multi-threaded Debug (for your debug configuration).

Without knowing any other detail about your solution it is hard to tell, however Rebuild All, might be helpful. This situation can sometimes occur when there are mixed object files for different architectures.
You might also want to consider using "References" instead of "Dependencies"
EDIT:
After what you have posted it seems that your linkage to standard libraries is inconsistent. Could it be that one of the project links standard libraries statically while others dynamically? (See project properties->linker) Or one to the release runtime, while others to debug? (though the last one should be possible, with caveats)

Are the functions in your other projects exported? If they aren't exported, then there is nothing to link to from the main exe, so that would cause the errors. See Exporting from a DLL Using __declspec(export) for more information.

The errors you are getting are 'error LNK2005' where a symbol in the library you are linking (msvcprtd.lib) has already been defined in another library (for example panels.lib). If you add panels.lib to the 'ignore specific library' field (in VS2008 Configuration Properties--> Linker--> Input -->Ignore specific libraries), the errors will stop.

I presume the linker errors you are getting are for "unresolved symbols"?
If using static libraries (i.e. .lib file), you will need to add the library to the linker input, so that at linkage time the symbols can be linked against. If you don't do this, you'll get an unresolved symbol:
Right-click on the project, and select Properties.
Select Configuration Properties->Linker->Input
Enter the library name (e.g. filename.lib) under Additional Dependencies.

I had a very similar issue to this which turned out to be because one of my libraries had the option 'Treat wchar_t as built-in type' set to a different value to the others. This setting is false by default on new projects. Changing them all to true fixed the problem.

Exactly, at least one of your projects is compiled with a different "Runtime Library" then the others. Maybe you added a new one using the default which is different. Check properties of your project(s) for equal value of "Configuration Properties" -> "C/C++" -> "Code Generation" -> "Runtime Library".

In my case, the problem was because I had kept the function prototypes, the class definitions and the function implementation and the class implementation in a single cpp file. Only when I shifted the declarations and prototypes to a separate header file did these errors disappear. Really weird!

In my case, I have two methods:
Project Properties -> C/C++ -> Code Generation -> Runtime Library. change it to MT.
Add your lack library to: Linker-> Input -> Additional Dependencies. If it doesn't work, try to add a full path instead of a library name.
For example: C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib\amd64\libvcruntime.lib;
That works for me.Answer this question for anyone needs help.

Related

statically link lib file causes link-error

I statically link fw.lib in my C++/CLI project, and get these errors:
Error 1 error LNK2028: unresolved token (0A00001B) "extern "C" unsigned int __cdecl func(unsigned int,unsigned char *)" (?func##$$J0YAIIPAE#Z) referenced in function "public: static void __clrcall Sdk::Native::Method(void)" (?Method#Native#Sdk##$$FSMXXZ) C:\project\Sdk.obj Sdk
Error 2 error LNK2019: unresolved external symbol "extern "C" unsigned int __cdecl func(unsigned int,unsigned char *)" (?func##$$J0YAIIPAE#Z) referenced in function "public: static void __clrcall Sdk::Native::Method(void)" (?Method#Native#Sdk##$$FSMXXZ) C:\project\Sdk.obj Sdk
What do I do wrong ? I did this:
Added the lib path in [project properties -> Library Directories]
Added fw.lib file under [project properties -> Additional Dependencies]
Wrapped all functions in fw.h with extern "C" {...}
Any idea ?
Problem solved...
Apparently when you link, for instance, x64 bit into x32 project (and vice versa ??), the linker produces a very general link-error.
FYI :-)

Symbols Missing for nsiCookieManager2 program

Please help me with the missing LIBs for this MOZILLA program.
Trying to create cookie using nsICookieManager2
I have tried with all the existing libs in Mozilla SDK
Regards
C:\Code>cl.exe FFCookie.cpp /I "C:\xulrunner-sdk\include" mozalloc.lib xpcomglue.lib /link /LIBPATH:"C:\xulrunner-sdk\lib"
Symbols Missing:
FFCookie.obj : error LNK2019: unresolved external symbol "public: void
__thiscall nsCOMPtr_base::assign_from_gs_contractid_with_er ror(class nsGetServiceByContractIDWithError const &,struct nsID const &)"
(?assign_from_gs_contractid_with_error#nsCOMPtr_base##QA
EXABVnsGetServiceByContractIDWithError##ABUnsID###Z) referenced in
function "public: __thiscall nsCOMPtr::
nsCOMPtr(class
nsGetServiceByContractIDWithError const &)"
(??0?$nsCOMPtr#VnsICookieManager####QAE#ABVnsGe
tServiceByContractIDWithError###Z)
FFCookie.obj : error LNK2019: unresolved external symbol "public: void
__thiscall nsCOMPtr_base::assign_from_qi(class nsQueryInter face,struct nsID const &)"
(?assign_from_qi#nsCOMPtr_base##QAEXVnsQueryInterface##ABUnsID###Z)
referenced in function "public: __t hiscall nsCOMPtr::nsCOMPtr(class
nsQueryInterface)" (??0?$nsCOMPtr#VnsICookieMan
ager2####QAE#VnsQueryInterface###Z) FFCookie.exe : fatal error
LNK1120: 2 unresolved externals
#include "nsICookieManager.h"
#include "nsICookieManager2.h"
#include "nsServiceManagerUtils.h"
#include "nsComPtr.h"
#include "nsNetCID.h"
#include "nsStringAPI.h"
#include "mozilla-config.h"
int main()
{
nsresult rv;
nsCOMPtr<nsICookieManager> cookieManager = do_GetService (NS_COOKIEMANAGER_CONTRACTID, &rv);
NS_ENSURE_SUCCESS(rv, rv);
if (cookieManager)
{
nsCOMPtr<nsICookieManager2> cookieManager2 = do_QueryInterface(cookieManager);
if (cookieManager2)
{
cookieManager2->Add(NS_LITERAL_CSTRING("ud.abc.com"),
NS_LITERAL_CSTRING("//"),
NS_LITERAL_CSTRING("TK"),
NS_LITERAL_CSTRING("abc"), 0x1, 0x1, 0, -1);
}
}
return 0;
}
Questions:
I dont find any info with function documentation regarding which LIB to include (as I find on MSDN)
Any clue on how to figure out LIB corresponding to particular function for MOZILLA.
The problem isn't with the lib, the symbol missing is defined in the xpcomglue library. However, you seem to have some compile parameters that don't match the parameters used to compile XULRunner/Firefox. The symbols your compiler is looking for contain "QAEX" as parameter description whereas the library defines them with "QAIX". Looking at the name mangling table, your compiler expects unsigned char where Mozilla has unsigned int. I suspect that the reason is you compiling your application without Unicode support - change main() into wmain()?

NODEFAULTLIB nightmare in VS2010 C++ project: links fine in debug, can't find a consistent set of libraries in release

Overflowers!
I've been developing a statically-linked application using Visual Studio 2010 (well, it's cross-platform, but this is just a Windows issue).
I had few issues setting up the linking for the Debug configuration, so I didn't expect it would be hard to change it to make a Release configuration, but after an afternoon's work it's still eluding me. Trying various values for NODEFAULTLIB either get me "unresolved external symbol" errors or "already defined in" errors and sometimes both.
From my notes, I've tried NODEFAULTLIB-ing LIBCMT, MSVCRT, MSVCPRT, or none at all, with different results each time (see below for details).
Now, my Debug configuration uses /NODEFAULTLIB:MSVCRTD /NODEFAULTLIB:MSVCPRTD and that works fine, so you'd think that /NODEFAULTLIB:MSVCRT /NODEFAULTLIB:MSVCPRT would work for the Release configuration. And the fact that it doesn't is a red flag for me...
I'm linking with several other libraries - I was pretty careful to systematically make sure that they were considered exactly the same when going from Debug to Release but could that conceivably be an issue, and if so how to track it down systematically?
Thanks for your gracious time!
In the Linker/Command Line property page, All Options is:
/OUT:".\Release\SlowGold 8.exe" /NOLOGO "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" /MANIFEST /ManifestFile:".\Release\SlowGold 8.exe.intermediate.manifest" /ALLOWISOLATION /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /PDB:".\Release\SlowGold 8.pdb" /SUBSYSTEM:WINDOWS /OPT:REF /OPT:ICF /PGD:"C:\development\rec-vs\rec\projects\slow\Builds\VisualStudio2010\Release\SlowGold 8.pgd" /LTCG /TLBID:1 /DYNAMICBASE /NXCOMPAT /MACHINE:X86 /ERRORREPORT:QUEUE
and Additional Options is:
/LIBPATH:..\\..\\..\\..\\externals\\rubberband\\win32\\ipp\\common ippacemerged.lib ippacmerged.lib ippcorel.lib ippsemerged.lib ippsmerged.lib ippsremerged.lib ippsrmerged.lib /LIBPATH:..\\..\\..\\..\\externals\\rubberband\\win32\\ipp\\release\\static rubberband-library.lib /LIBPATH:..\\..\\..\\..\\..\\glog\\Release libglog_static.lib /LIBPATH:..\\..\\..\\..\\..\\mpg123\\ports\\MSVC++\\2008\\Release libmpg123.lib /LIBPATH:..\\..\\..\\..\\..\\protobuf\\vsprojects\\Release libprotobuf.lib
And here are some error messages for various /NODEFAULTLIB: values.
Best so far: /NODEFAULTLIB:LIBCMT
1>------ Build started: Project: Slow, Configuration: Release Win32 ------
1>msvcprt.lib(MSVCP100.dll) : error LNK2005: "public: __thiscall std::basic_ostream<char,struct std::char_traits<char> >::basic_ostream<char,struct std::char_traits<char> >(class std::basic_streambuf<char,struct std::char_traits<char> > *,bool)" (??0?$basic_ostream#DU?$char_traits#D#std###std##QAE#PAV?$basic_streambuf#DU?$char_traits#D#std###1#_N#Z) already defined in libcpmt.lib(cerr.obj)
1>msvcprt.lib(MSVCP100.dll) : error LNK2005: "void __cdecl std::_Xlength_error(char const *)" (?_Xlength_error#std##YAXPBD#Z) already defined in libcpmt.lib(xthrow.obj)
1>msvcprt.lib(MSVCP100.dll) : error LNK2005: "void __cdecl std::_Xout_of_range(char const *)" (?_Xout_of_range#std##YAXPBD#Z) already defined in libcpmt.lib(xthrow.obj)
1>.\Release\SlowGold 8.exe : fatal error LNK1169: one or more multiply defined symbols found
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Another attempt with only /NODEFAULTLIB:MSVCRT
1>------ Build started: Project: Slow, Configuration: Release Win32 ------
1>msvcprt.lib(MSVCP100.dll) : error LNK2005: "public: __thiscall std::basic_ostream<char,struct std::char_traits<char> >::basic_ostream<char,struct std::char_traits<char> >(class std::basic_streambuf<char,struct std::char_traits<char> > *,bool)" (??0?$basic_ostream#DU?$char_traits#D#std###std##QAE#PAV?$basic_streambuf#DU?$char_traits#D#std###1#_N#Z) already defined in libcpmt.lib(cerr.obj)
1>msvcprt.lib(MSVCP100.dll) : error LNK2005: "void __cdecl std::_Xlength_error(char const *)" (?_Xlength_error#std##YAXPBD#Z) already defined in libcpmt.lib(xthrow.obj)
1>msvcprt.lib(MSVCP100.dll) : error LNK2005: "void __cdecl std::_Xout_of_range(char const *)" (?_Xout_of_range#std##YAXPBD#Z) already defined in libcpmt.lib(xthrow.obj)
1>libglog_static.lib(logging.obj) : error LNK2001: unresolved external symbol __imp__strncat
1>libglog_static.lib(logging.obj) : error LNK2001: unresolved external symbol __imp__perror
1>libglog_static.lib(logging.obj) : error LNK2001: unresolved external symbol __imp___pclose
1>libglog_static.lib(logging.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) int __cdecl _open(char const *,int,int)" (__imp_?_open##YAHPBDHH#Z)
1>libglog_static.lib(logging.obj) : error LNK2001: unresolved external symbol __imp___access
1>libglog_static.lib(logging.obj) : error LNK2001: unresolved external symbol __imp___popen
1>libglog_static.lib(logging.obj) : error LNK2001: unresolved external symbol __imp___wassert
1>libglog_static.lib(logging.obj) : error LNK2001: unresolved external symbol __imp__fdopen
1>OLDNAMES.lib(fdopen.obi) : error LNK2001: unresolved external symbol __imp__fdopen
1>libglog_static.lib(logging.obj) : error LNK2001: unresolved external symbol __imp__unlink
1>OLDNAMES.lib(unlink.obi) : error LNK2001: unresolved external symbol __imp__unlink
1>libglog_static.lib(utilities.obj) : error LNK2001: unresolved external symbol __imp___getpid
1>libglog_static.lib(port.obj) : error LNK2001: unresolved external symbol __imp___vsnprintf
1>libprotobuf.lib(message.obj) : error LNK2001: unresolved external symbol __imp__ldiv
1>libprotobuf.lib(descriptor.obj) : error LNK2001: unresolved external symbol __imp__ldiv
1>libprotobuf.lib(extension_set.obj) : error LNK2001: unresolved external symbol __imp__ldiv
1>libprotobuf.lib(common.obj) : error LNK2001: unresolved external symbol __imp___snprintf
1>libprotobuf.lib(strutil.obj) : error LNK2001: unresolved external symbol __imp___snprintf
1>OLDNAMES.lib(fdopen.obi) : error LNK2001: unresolved external symbol __imp___fdopen
1>OLDNAMES.lib(unlink.obi) : error LNK2001: unresolved external symbol __imp___unlink
1>.\Release\SlowGold 8.exe : fatal error LNK1120: 15 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Without /NODEFAULTLIB:
1>------ Build started: Project: Slow, Configuration: Release Win32 ------
1>msvcprt.lib(MSVCP100.dll) : error LNK2005: "public: __thiscall std::basic_ostream<char,struct std::char_traits<char> >::basic_ostream<char,struct std::char_traits<char> >(class std::basic_streambuf<char,struct std::char_traits<char> > *,bool)" (??0?$basic_ostream#DU?$char_traits#D#std###std##QAE#PAV?$basic_streambuf#DU?$char_traits#D#std###1#_N#Z) already defined in libcpmt.lib(cerr.obj)
1>msvcprt.lib(MSVCP100.dll) : error LNK2005: "void __cdecl std::_Xlength_error(char const *)" (?_Xlength_error#std##YAXPBD#Z) already defined in libcpmt.lib(xthrow.obj)
1>msvcprt.lib(MSVCP100.dll) : error LNK2005: "void __cdecl std::_Xout_of_range(char const *)" (?_Xout_of_range#std##YAXPBD#Z) already defined in libcpmt.lib(xthrow.obj)
1>MSVCRT.lib(MSVCR100.dll) : error LNK2005: __stricmp already defined in LIBCMT.lib(stricmp.obj)
1>MSVCRT.lib(MSVCR100.dll) : error LNK2005: _strerror_s already defined in LIBCMT.lib(strerror.obj)
1>MSVCRT.lib(MSVCR100.dll) : error LNK2005: _fflush already defined in LIBCMT.lib(fflush.obj)
1>MSVCRT.lib(MSVCR100.dll) : error LNK2005: _strtol already defined in LIBCMT.lib(strtol.obj)
1>MSVCRT.lib(MSVCR100.dll) : error LNK2005: _strrchr already defined in LIBCMT.lib(strrchr.obj)
1>MSVCRT.lib(MSVCR100.dll) : error LNK2005: __write already defined in LIBCMT.lib(write.obj)
1>MSVCRT.lib(MSVCR100.dll) : error LNK2005: __close already defined in LIBCMT.lib(close.obj)
1>MSVCRT.lib(MSVCR100.dll) : error LNK2005: "public: __thiscall std::exception::exception(char const * const &)" (??0exception#std##QAE#ABQBD#Z) already defined in LIBCMT.lib(stdexcpt.obj)
1>MSVCRT.lib(MSVCR100.dll) : error LNK2005: "public: virtual __thiscall std::exception::~exception(void)" (??1exception#std##UAE#XZ) already defined in LIBCMT.lib(stdexcpt.obj)
1>MSVCRT.lib(MSVCR100.dll) : error LNK2005: _memmove already defined in LIBCMT.lib(memmove.obj)
1>MSVCRT.lib(MSVCR100.dll) : error LNK2005: "public: __thiscall std::exception::exception(class std::exception const &)" (??0exception#std##QAE#ABV01##Z) already defined in LIBCMT.lib(stdexcpt.obj)
1>MSVCRT.lib(MSVCR100.dll) : error LNK2005: _printf already defined in LIBCMT.lib(printf.obj)
1>MSVCRT.lib(MSVCR100.dll) : error LNK2005: _fprintf already defined in LIBCMT.lib(fprintf.obj)
1>MSVCRT.lib(MSVCR100.dll) : error LNK2005: ___iob_func already defined in LIBCMT.lib(_file.obj)
1>MSVCRT.lib(MSVCR100.dll) : error LNK2005: _abort already defined in LIBCMT.lib(abort.obj)
1>MSVCRT.lib(MSVCR100.dll) : error LNK2005: _memchr already defined in LIBCMT.lib(memchr.obj)
1>MSVCRT.lib(MSVCR100.dll) : error LNK2005: __strtoi64 already defined in LIBCMT.lib(strtoq.obj)
1>MSVCRT.lib(MSVCR100.dll) : error LNK2005: __strtoui64 already defined in LIBCMT.lib(strtoq.obj)
1>MSVCRT.lib(MSVCR100.dll) : error LNK2005: _strtoul already defined in LIBCMT.lib(strtol.obj)
1>MSVCRT.lib(MSVCR100.dll) : error LNK2005: __errno already defined in LIBCMT.lib(dosmap.obj)
1>MSVCRT.lib(MSVCR100.dll) : error LNK2005: _strerror already defined in LIBCMT.lib(strerror.obj)
1>MSVCRT.lib(MSVCR100.dll) : error LNK2005: _strchr already defined in LIBCMT.lib(strchr.obj)
1>MSVCRT.lib(MSVCR100.dll) : error LNK2005: _sprintf already defined in LIBCMT.lib(sprintf.obj)
1>MSVCRT.lib(MSVCR100.dll) : error LNK2005: _strtod already defined in LIBCMT.lib(strtod.obj)
1>MSVCRT.lib(MSVCR100.dll) : error LNK2005: _strpbrk already defined in LIBCMT.lib(strpbrk.obj)
1>MSVCRT.lib(ti_inst.obj) : error LNK2005: "private: __thiscall type_info::type_info(class type_info const &)" (??0type_info##AAE#ABV0##Z) already defined in LIBCMT.lib(typinfo.obj)
1>MSVCRT.lib(ti_inst.obj) : error LNK2005: "private: class type_info & __thiscall type_info::operator=(class type_info const &)" (??4type_info##AAEAAV0#ABV0##Z) already defined in LIBCMT.lib(typinfo.obj)
1>MSVCRT.lib(MSVCR100.dll) : error LNK2005: __read already defined in LIBCMT.lib(read.obj)
1>LINK : warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library
1>.\Release\SlowGold 8.exe : fatal error LNK1169: one or more multiply defined symbols found
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Hans Passant provided me the key to the solution in his comments to my problem! If he'd come back and phrase them as an answer, I'd erase this and credit him...
As predicted, one of the third-party libraries was not set to /MT in release (but it was /MTd in debug) - changing that flag made it all work.
You find the option in Properties - C/C++ - Code Generation - Runtime Library

Library issue in the project

I am getting very strange errors and i am not able to understand what these errors actually mean when build my project in visual studio it gives me the following errors can anybody tells me what actually these error means i though that there are some configuration issues i am doing socket programming and network programming.
Here are the bunch of error your help weill be highly appreciated....
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets(990,5): warning MSB8012: TargetPath(E:\Study\FWIF\demola\ext-libs\libcommoncpp2-1.6.0\w32\Debug\ccgnu2.dll) does not match the Linker's OutputFile property value (E:\Study\FWIF\demola\ext-libs\libcommoncpp2-1.6.0\w32\Debug\CapeCommon14.dll). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile).
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets(992,5): warning MSB8012: TargetName(ccgnu2) does not match the Linker's OutputFile property value (CapeCommon14). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile).
1> Creating library E:\Study\FWIF\demola\ext-libs\libcommoncpp2-1.6.0\w32\Debug\CapeCommon14.lib and object E:\Study\FWIF\demola\ext-libs\libcommoncpp2-1.6.0\w32\Debug\CapeCommon14.exp
1>socket.obj : error LNK2019: unresolved external symbol "public: bool __thiscall ost::IPV4Cidr::isMember(struct sockaddr const *)const " (?isMember#IPV4Cidr#ost##QBE_NPBUsockaddr###Z) referenced in function "public: bool __thiscall ost::IPV4Cidr::operator==(struct sockaddr const *)const " (??8IPV4Cidr#ost##QBE_NPBUsockaddr###Z)
1>in6addr.obj : error LNK2001: unresolved external symbol "public: bool __thiscall ost::IPV4Cidr::isMember(struct sockaddr const *)const " (?isMember#IPV4Cidr#ost##QBE_NPBUsockaddr###Z)
1>inaddr.obj : error LNK2001: unresolved external symbol "public: bool __thiscall ost::IPV4Cidr::isMember(struct sockaddr const *)const " (?isMember#IPV4Cidr#ost##QBE_NPBUsockaddr###Z)
1>peer.obj : error LNK2001: unresolved external symbol "public: bool __thiscall ost::IPV4Cidr::isMember(struct sockaddr const *)const " (?isMember#IPV4Cidr#ost##QBE_NPBUsockaddr###Z)
1>simplesocket.obj : error LNK2001: unresolved external symbol "public: bool __thiscall ost::IPV4Cidr::isMember(struct sockaddr const *)const " (?isMember#IPV4Cidr#ost##QBE_NPBUsockaddr###Z)
1>socket.obj : error LNK2019: unresolved external symbol "public: bool __thiscall ost::IPV4Cidr::isMember(struct in_addr const &)const " (?isMember#IPV4Cidr#ost##QBE_NABUin_addr###Z) referenced in function "public: bool __thiscall ost::IPV4Cidr::operator==(struct in_addr const &)const " (??8IPV4Cidr#ost##QBE_NABUin_addr###Z)
1>in6addr.obj : error LNK2001: unresolved external symbol "public: bool __thiscall ost::IPV4Cidr::isMember(struct in_addr const &)const " (?isMember#IPV4Cidr#ost##QBE_NABUin_addr###Z)
1>inaddr.obj : error LNK2001: unresolved external symbol "public: bool __thiscall ost::IPV4Cidr::isMember(struct in_addr const &)const " (?isMember#IPV4Cidr#ost##QBE_NABUin_addr###Z)
1>peer.obj : error LNK2001: unresolved external symbol "public: bool __thiscall ost::IPV4Cidr::isMember(struct in_addr const &)const " (?isMember#IPV4Cidr#ost##QBE_NABUin_addr###Z)
1>simplesocket.obj : error LNK2001: unresolved external symbol "public: bool __thiscall ost::IPV4Cidr::isMember(struct in_addr const &)const " (?isMember#IPV4Cidr#ost##QBE_NABUin_addr###Z)
1>E:\Study\FWIF\demola\ext-libs\libcommoncpp2-1.6.0\w32\Debug\CapeCommon14.dll : fatal error LNK1120: 2 unresolved externals
2>------ Build started: Project: buffer, Configuration: Debug Win32 ------
2> buffer.cpp
2>e:\study\fwif\demola\ext-libs\libcommoncpp2-1.6.0\demo\buffer.cpp(41): fatal error C1083: Cannot open include file: 'cc++/buffer.h': No such file or directory
========== Build: 0 succeeded, 2 failed, 0 up-to-date, 0 skipped ==========
For the errors in project 1, it looks like you have to add a library to the build to resolve the function call ost::IPV4Cidr::isMember(struct sockaddr const *)const. Possibly you are compiling with the wrong calling conventions for a library that you already included.
For the compile error in project buffer, you need to add the include path for that file cc++/buffer.h to the project.

How to resolve linking error?

I hav a project.it shows error only with linking only.
it displays __getch alresdy defined evnthough i hav ignored specific library MSVCR80D.dll it shows error.
Plz Help me in this regard.....
after using /verbose:
Processed /DEFAULTLIB:msvcprtd
Processed /DEFAULTLIB:MSVCRTD
Processed /DEFAULTLIB:OLDNAMES
Processed /DEFAULTLIB:MSVCMRTD
Processed /DEFAULTLIB:MSCOREE
Processed /DEFAULTLIB:uuid.lib
Processed /DEFAULTLIB:atlsd.lib
Processed /DEFAULTLIB:kernel32.lib
Processed /DEFAULTLIB:user32.lib
Processed /DEFAULTLIB:advapi32.lib
Processed /DEFAULTLIB:ole32.lib
Processed /DEFAULTLIB:shell32.lib
Processed /DEFAULTLIB:oleaut32.lib
Processed /DEFAULTLIB:shlwapi.lib
Processed /DEFAULTLIB:ws2_32.lib
Referenced in config.lib(configwrapper.obj)
Loaded msvcprtd.lib(MSVCP80D.dll)
msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: char __thiscall std::basic_ios<char,struct std::char_traits<char> >::fill(void)const " (?fill#?$basic_ios#DU?$char_traits#D#std###std##QBEDXZ) already defined in ACEsd.lib(Log_Record.obj)
Found "__declspec(dllimport) public: int __thiscall std::ios_base::flags(void)const " (__imp_?flags#ios_base#std##QBEHXZ)
Referenced in config.lib(serializetransport_settings.obj)
Referenced in config.lib(serializeretentionsettings.obj)
Referenced in s2libs.lib(operatingsystem.obj)
Referenced in s2libs.lib(errormajor.obj)
Loaded msvcprtd.lib(MSVCP80D.dll)
msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: int __thiscall std::ios_base::flags(void)const " (?flags#ios_base#std##QBEHXZ) already defined in ACEsd.lib(Log_Record.obj)
Found "__declspec(dllimport) public: int __thiscall std::ios_base::width(void)const " (__imp_?width#ios_base#std##QBEHXZ)
Referenced in config.lib(serializetransport_settings.obj)
Referenced in config.lib(serializeretentionsettings.obj)
Referenced in s2libs.lib(operatingsystem.obj)
Referenced in s2libs.lib(errormajor.obj)
Referenced in config.lib(serializereplicationpairsettings.obj)
Referenced in config.lib(serializecdpsnapshotrequest.obj)
Referenced in config.lib(serializeatconfigmanagersettings.obj)
Referenced in config.lib(serializeretentioninformation.obj)
Referenced in config.lib(marshal.obj)
Referenced in config.lib(serializevolumegroupsettings.obj)
Referenced in config.lib(unmarshal.obj)
have a look at the project settings , at Configuration Properties -> C/C++ -> Code Generation -> Runtime Library.
the setting , whether it MD , MTD or whatever, must be compatible between your library and ACE's library.
you should not manually ignore any library, there should be no need for that.

Resources