Code::Blocks Forums
Developer forums (C::B DEVELOPMENT STRICTLY!) => Plugins development => Topic started by: zieQ on July 28, 2005, 11:38:27 am
-
Hi,
First good news: the Visual C++ Toolkit compiler plugin in C::B seems to work with Visual .NET 2003. I guess it would work with any version of Visual C++. That's why I think the compiler plugin may be renamed to Visual C++ :P
During visual imports corrections, I added some options to the compiler plugin:
- a missing /Od for no optimization (debug), set by default by cl.exe.
- a bunch of options for runtime libraries linking: /MT /MTd /MD /MDd /ML /MLd (see http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/vccore/html/_core_.2f.MD.2c_2f.ML.2c_2f.MT.2c_2f.LD.asp) which are fundamental with Visual C++ to avoid conflicts between libraries which are compiled with different options.
However I know some of the runtime libraries are missing in the Visual Toolkit/Platform SDK: those corresponding to /MDd /MD and /MTd when we include STL (libcp*.lib msvcp*.lib conterparts). Seems that they are not downloadable separatly for free. So I don't know how to set correctly the options either in the visual importer or in the msvc compiler plugin.
- It would be could to be able to use different version of Visual C++ for extensibility purpose, so I would not modify the new options of the msvc compiler plugin
- But we may provide a way to disable the options when libraries are missing, maybe in the compiler detection ??
I cannot send the patch for the compiler plugin or the visual imports before tonight, sorry!
What is you opinion about my problem ? What should I do with those options ?
-
Perhaps we could make 2 versions:
"MS Visual C++ Toolkit"
and
"MS Visual C++ / .NET" or something...
-
However I know some of the runtime libraries are missing in the Visual Toolkit/Platform SDK: those corresponding to /MDd /MD and /MTd when we include STL (libcp*.lib msvcp*.lib conterparts). Seems that they are not downloadable separatly for free.
msvcrt.lib (/MD option) is available in .NET framework SDK (free). I'm not sure, but I think that there is also a debug version (/MDd). After installing .NET sdk, those libs should be somwhere in C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7 (IIRC).
cheers
-
Well, I know there's some additionnal libraries in .NET framework SDK, but there's still some missing libraries:
- the multithreaded release runtimes shipped with STL, i.e. /MT and /MD when using STL, corresponding to libraries libcpmt.lib, msvcprt.lib
- all the multithreaded debug ones, i.e. /MTd and /MDd, corresponding to libraries msvcrtd.lib, msvcprtd.lib, libcmtd.lib, libcpmtd.lib
-
Well, I know there's some additionnal libraries in .NET framework SDK, but there's still some missing libraries:
- the multithreaded release runtimes shipped with STL, i.e. /MT and /MD when using STL, corresponding to libraries libcpmt.lib, msvcprt.lib
Well you should look better then :P , because I didn't had any problems with /MT.
I can't remember where I found apropriate files (either in vctoolkit, platformSDK or .NET sdk) but when I was using those free
packages I could build static dll's (they used stl) with no probs :-/ (IIRC libcpmt.lib is in lib directory of VC++ toolkit).
- all the multithreaded debug ones, i.e. /MTd and /MDd, corresponding to libraries msvcrtd.lib, msvcprtd.lib, libcmtd.lib, libcpmtd.lib
Yeah. These are surely not available (for free).
Although I experimented with the files provided for ia64 in platform sdk. "64-bit versions" of the libs you mentioned are available in platformSDK, and in many cases they correctly linked with my apps. To my surprise if compilation/linking went fine, the application also worked fine (I didnt made any in-depth tests though).
cheers
-
edit: http://wiki.codeblocks.org/index.php/FAQ#I_can.27t_compile_a_multithreaded_app_with_VC_Toolkit.21_Where_are_the_libraries.3F