i have written a program in C++ which uses many libraries and include many cpp and hpp files.
I compile it successfully.
I run the exe file successfully on my pc but in other pcs i get the message that the msvcp100d.dll file is missing.
I am using MSVS 2010 and at the output i get the message :
" 'das.exe': Loaded 'C:\Windows\SysWOW64\msvcp100d.dll', Cannot find or open the PDB file ".
I ignored it all this time after many compiles. I do not know if the fault is here.
Of course i get many other messages like this.
But the compile ends successfully without errors.
I think that i need to include the libraries in the exe but i am not sure.
I changed the option in the Project properties:
Configuration Properties - C++ - Code Generation: Runtime Library
to "Multi Threaded" but i get over 70 errors like this:
Error 59 error LNK2005: "protected: char * __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::_Pninc(void)" (?_Pninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ) already defined in BasicExcel.obj
C:\Users\Christos\Desktop\DAS\das\das\msvcprtd.lib(MSVCP100D.dll)
das
Yes, if you use dynamically linked libraries, you need to provide those dll's for an application to run. The lack of PDB (program database) file is not an issue during deployment - it is only related to debugging. The error which shows up when you change to static CRT libraries means that some of your other libraries/subprojects in your solution use the dynamically-linked CRT, so you won't be able to link the CRT statically unless you recompile all your dependencies to use static CRT.
To deploy your application successfully you need to include all the dll's that it uses. For third-party libraries you may just copy the dll's along with your application. As for CRT dll's - see here: http://msdn.microsoft.com/en-us/library/zebw5zk9(v=vs.100).aspx
Also, quite an easy way to see which dll's are missing on other pc's is to use dependency walker: http://www.dependencywalker.com/