I am proud to announce the first public beta of wxDev-C++ which has runtime compiler switching (currently only VC 2003/2005 is supported). The Visual C++ Environment setup application is also found on the same project page - http://joelsplace.sg/projects/.
Release Notes
Visual C++ support for stand-alone source files without a project is SEVERELY limited. Results may vary from a successful compile to a frozen wxDev-C++ or even a program crash.
New approach to sizer layout. I used the real wxWidgets flags wxALIGN_* and wxTOP|wxLEFT|wxBOTTOM|wxRIGHT|wxALL. THIS MAKES ALL FORM FILES NO LONGER COMPATIBLE WITH THE ORIGINAL wxDev-C++, and the old form files CANNOT be opened with this beta
As with all betas, please back up your devcpp.ini file; found at %APPDATA%\Dev-Cpp\devcpp.ini.
The normalization tool will download all the required setup files from MSDN for you; but only VC 2003 Toolkit will be downloaded. Users who used VC 2003/2005 and who have now migrated to wxDev-C++ can use it to check the PATH settings and set up a VC compiler set in wxDev-C++, however.
Make sure your include/library paths have the VC paths BEFORE the MingW ones. [%DEVCPP%\include should be among the last]
Manual PCH's for VC 2003/2005 are supported, see appendix below.
PCHOBJ = {Path to PCH dependency file}
PCHFILE = {Path to file you want to precompile}
CXXFLAGS += /Yu$(PCHFILE)
LINKOBJ += $(PCHOBJ)
INCLUDES = {files that $(PCHFILE) depends on}
$(PCHOBJ): $(PCHFILE) {PCH dependency file} $(INCLUDES)
cl.exe /nologo /c {PCH dependency file} /Fo$(PCHOBJ) /Yc$(PCHFILE) $(CXXFLAGS)
all-before: $(PCHOBJ)
clean-custom:
$(RM) $(PCHOBJ)
Save this file as <filename>.mak
Go to your project options > Makefile
Add <filename>.mak to the makefile includes list
Rebuild All (Ctrl-F11)
Remember to update your INCLUDES variable every time you add or remove a header file that your PCH includes, otherwise you will have to use Rebuild All every time a file has changed
Useful Links
http://joelsplace.sg/projects - My own latest alpha binaries + installer, as well as VC 2005 release/Unicode/DLL and Static lib wxWidgets builds
Tony and I have worked hard on this release, and we certainly hope you will find this a useful addition to wxDev-C++. Users who use DMC or BCC (or any other compiler) and wish to contribute the list of compiler switches are very welcome to send me an email [joel AT joelsplace DOT sg] and I will see if it can be included in the next release; however the level of quality will not be as high as those found in VC/Mingw (I had refined them through rigourous testing so there would be no hiccups) - unless you wish to donate a copy? (kidding on that one)
Best regards,
Joel
Last edited by lowjoel on Mon May 01, 2006 12:21 am, edited 1 time in total.
Also, note that I added a field for "VC_branch" to the SourceForge bug reporter. Please specify your VC branch bugs with that flag.
-Tony
[mod/Joel]The latest binaries are on my site, reading the SF docs they say that "alpha/nightly builds should be hosted on project webspace instead of using the FRS." I also think my server can handle the load (haha, I barely used any of my bandwidth allocated)
Everybody's got something to hide except for me and my monkey.
What changes are needed to existing project files to get them to work with this version. I would like to try it but don't wish to jepodise a working project.
As a matter of interest are the compile times and executable sizes any better with this release?
Can I use it instead of my existing wxDevCpp i.e will it still work with gcc if needed?
Sof_T wrote:What changes are needed to existing project files to get them to work with this version. I would like to try it but don't wish to jepodise a working project.
You should DEFINITELY make a copy of your existing projects BEFORE you try this version. Joel made some changes to the sizer implementation so project's with sizers won't (currently) go back and forth between this version and 6.9beta. Otherwise, they should be compatible.
In a nutshell, the changes needed all have to do with setting up the directories and compiler option flags to create a correct makefile. Otherwise, there's no changes in the C++ code.
Sof_T wrote:As a matter of interest are the compile times and executable sizes any better with this release?
I don't think we've tested it quantitavely, but the compile times do seem to be quicker. The executable size is definitely smaller, but this is due to the fact that you need to also export the wxWidgets DLL with your executable. With the gcc builds, the wxWidgets stuff is incorporated into each executable (which is why they are MB in size even for the mininal app).
-Tony
Everybody's got something to hide except for me and my monkey.
6.10 build 9 is available; this fixes the array out of bounds issue when you pass -c to specify the config path. (its at the same address)
UPDATE: I've included [hopefully all the required] binaries that users should need when using CVS with wxDev-C++. The files are copied from a TortoiseCVS installation (hehe, my own) and the binaries when installed as an option can be found at %INSTALLDIR%\CVS.
6.10 build 12 is available, this is a small bugfix release that contains the following fixes:
SETUP app now cleans up your devpaks
Download the devpaks and install them during setup (its in the options)
Fixed the custom make commands; you can add parameters to be used to call make. This allows you to link with multiple types of the same library. (libMyLibd, can be defined with the symbol libMyLib$(DEBUG), and pass DEBUG=d to make when you are building a debug lib... that sorta thing)
Fixed some positioning and did some code cleaning with my code generation
I just visited you page. Thanks for the devpak for VC++ Static link!
But the size of the dev-pak is really 47.2MB?
Also, the alpha wxdev-cpp at your page is complete with the VC++ Static Linking support?
C:/Arquivos de programas\Microsoft Visual C++ Toolkit 2003\include\exception(65) : error C2146: syntax error : missing ';' before identifier '_Prhand'
C:/Arquivos de programas\Microsoft Visual C++ Toolkit 2003\include\exception(67) : error C2144: syntax error : 'void' should be preceded by ';'
C:/Arquivos de programas\Microsoft Visual C++ Toolkit 2003\include\exception(67) : error C2501: '_CRTIMP2' : missing storage-class or type specifiers
C:/Arquivos de programas\Microsoft Visual C++ Toolkit 2003\include\exception(70) : error C2470: 'exception' : looks like a function definition, but there is no formal parameter list; skipping apparent body
C:/Arquivos de programas\Microsoft Visual C++ Toolkit 2003\include\exception(148) : error C2144: syntax error : 'bool' should be preceded by ';'
C:/Arquivos de programas\Microsoft Visual C++ Toolkit 2003\include\exception(148) : error C2501: '_CRTIMP2' : missing storage-class or type specifiers
C:/Arquivos de programas\Microsoft Visual C++ Toolkit 2003\include\exception(148) : error C2086: 'int std::_CRTIMP2' : redefinition
C:/Arquivos de programas\Microsoft Visual C++ Toolkit 2003\include\exception(65) : see declaration of 'std::_CRTIMP2'
C:/Arquivos de programas\Microsoft Visual C++ Toolkit 2003\include\exception(153) : error C2504: 'std::exception' : base class undefined
C:/Arquivos de programas\Microsoft Visual C++ Toolkit 2003\include\exception(155) : error C3861: '_MESG': identifier not found, even with argument-dependent lookup
C:/Arquivos de programas\Microsoft Platform SDK\Microsoft Platform SDK\INCLUDE\NEW(16) : error C2504: 'std::exception' : base class undefined
C:/Arquivos de programas\Microsoft Platform SDK\Microsoft Platform SDK\INCLUDE\UTILITY(81) : warning C4346: '_It::iterator_category' : dependent name is not a type
prefix with 'typename' to indicate a type
C:/Arquivos de programas\Microsoft Platform SDK\Microsoft Platform SDK\INCLUDE\UTILITY(84) : see reference to class template instantiation 'std::iterator_traits<_It>' being compiled
C:/Arquivos de programas\Microsoft Platform SDK\Microsoft Platform SDK\INCLUDE\UTILITY(81) : error C2146: syntax error : missing ';' before identifier 'iterator_category'
C:/Arquivos de programas\Microsoft Platform SDK\Microsoft Platform SDK\INCLUDE\UTILITY(81) : error C2501: 'std::iterator_traits<_It>::iterator_category' : missing storage-class or type specifiers
C:/Arquivos de programas\Microsoft Platform SDK\Microsoft Platform SDK\INCLUDE\UTILITY(82) : warning C4346: '_It::value_type' : dependent name is not a type
prefix with 'typename' to indicate a type
C:/Arquivos de programas\Microsoft Platform SDK\Microsoft Platform SDK\INCLUDE\UTILITY(82) : error C2146: syntax error : missing ';' before identifier 'value_type'
C:/Arquivos de programas\Microsoft Platform SDK\Microsoft Platform SDK\INCLUDE\UTILITY(82) : error C2501: 'std::iterator_traits<_It>::value_type' : missing storage-class or type specifiers
C:/Arquivos de programas\Microsoft Platform SDK\Microsoft Platform SDK\INCLUDE\UTILITY(83) : warning C4346: '_It::distance_type' : dependent name is not a type
prefix with 'typename' to indicate a type
C:/Arquivos de programas\Microsoft Platform SDK\Microsoft Platform SDK\INCLUDE\UTILITY(83) : error C2146: syntax error : missing ';' before identifier 'distance_type'
C:/Arquivos de programas\Microsoft Platform SDK\Microsoft Platform SDK\INCLUDE\UTILITY(83) : error C2501: 'std::iterator_traits<_It>::distance_type' : missing storage-class or type specifiers
C:/Arquivos de programas\Microsoft Platform SDK\Microsoft Platform SDK\INCLUDE\UTILITY(224) : warning C4348: 'std::istreambuf_iterator' : redefinition of default parameter : parameter 2
C:/Arquivos de programas\Microsoft Platform SDK\Microsoft Platform SDK\INCLUDE\UTILITY(279) : see declaration of 'std::istreambuf_iterator'
C:/Arquivos de programas\Microsoft Platform SDK\Microsoft Platform SDK\INCLUDE\UTILITY(226) : warning C4346: '_Tr::off_type' : dependent name is not a type
prefix with 'typename' to indicate a type
C:/Arquivos de programas\Microsoft Platform SDK\Microsoft Platform SDK\INCLUDE\UTILITY(279) : see reference to class template instantiation 'std::istreambuf_iterator<_E,_Tr>' being compiled
C:/Arquivos de programas\Microsoft Platform SDK\Microsoft Platform SDK\INCLUDE\UTILITY(226) : error C2923: 'std::iterator' : '_Tr::off_type' is invalid as template argument '#3', type expected
C:/Arquivos de programas\Microsoft Platform SDK\Microsoft Platform SDK\INCLUDE\UTILITY(231) : warning C4346: '_Tr::int_type' : dependent name is not a type
prefix with 'typename' to indicate a type
C:/Arquivos de programas\Microsoft Platform SDK\Microsoft Platform SDK\INCLUDE\UTILITY(231) : error C2146: syntax error : missing ';' before identifier 'int_type'
C:/Arquivos de programas\Microsoft Platform SDK\Microsoft Platform SDK\INCLUDE\UTILITY(231) : error C2501: 'std::istreambuf_iterator<_E,_Tr>::int_type' : missing storage-class or type specifiers
C:/Arquivos de programas\Microsoft Platform SDK\Microsoft Platform SDK\INCLUDE\UTILITY(289) : warning C4348: 'std::ostreambuf_iterator' : redefinition of default parameter : parameter 2
C:/Arquivos de programas\Microsoft Platform SDK\Microsoft Platform SDK\INCLUDE\UTILITY(318) : see declaration of 'std::ostreambuf_iterator'
C:/Arquivos de programas\Microsoft Platform SDK\Microsoft Platform SDK\INCLUDE\XSTRING(25) : warning C4346: '_A::size_type' : dependent name is not a type
prefix with 'typename' to indicate a type
C:/Arquivos de programas\Microsoft Platform SDK\Microsoft Platform SDK\INCLUDE\XSTRING(597) : see reference to class template instantiation 'std::basic_string<_E,_Tr,_A>' being compiled
C:/Arquivos de programas\Microsoft Platform SDK\Microsoft Platform SDK\INCLUDE\XSTRING(25) : error C2146: syntax error : missing ';' before identifier 'size_type'
C:/Arquivos de programas\Microsoft Platform SDK\Microsoft Platform SDK\INCLUDE\XSTRING(25) : error C2501: 'std::basic_string<_E,_Tr,_A>::size_type' : missing storage-class or type specifiers
C:/Arquivos de programas\Microsoft Platform SDK\Microsoft Platform SDK\INCLUDE\XSTRING(26) : warning C4346: '_A::difference_type' : dependent name is not a type
prefix with 'typename' to indicate a type
C:/Arquivos de programas\Microsoft Platform SDK\Microsoft Platform SDK\INCLUDE\XSTRING(26) : error C2146: syntax error : missing ';' before identifier 'difference_type'
C:/Arquivos de programas\Microsoft Platform SDK\Microsoft Platform SDK\INCLUDE\XSTRING(26) : error C2501: 'std::basic_string<_E,_Tr,_A>::difference_type' : missing storage-class or type specifiers
C:/Arquivos de programas\Microsoft Platform SDK\Microsoft Platform SDK\INCLUDE\XSTRING(27) : warning C4346: '_A::pointer' : dependent name is not a type
prefix with 'typename' to indicate a type
C:/Arquivos de programas\Microsoft Platform SDK\Microsoft Platform SDK\INCLUDE\XSTRING(27) : error C2146: syntax error : missing ';' before identifier 'pointer'
C:/Arquivos de programas\Microsoft Platform SDK\Microsoft Platform SDK\INCLUDE\XSTRING(27) : error C2501: 'std::basic_string<_E,_Tr,_A>::pointer' : missing storage-class or type specifiers
C:/Arquivos de programas\Microsoft Platform SDK\Microsoft Platform SDK\INCLUDE\XSTRING(28) : warning C4346: '_A::const_pointer' : dependent name is not a type
prefix with 'typename' to indicate a type
C:/Arquivos de programas\Microsoft Platform SDK\Microsoft Platform SDK\INCLUDE\XSTRING(28) : error C2146: syntax error : missing ';' before identifier 'const_pointer'
C:/Arquivos de programas\Microsoft Platform SDK\Microsoft Platform SDK\INCLUDE\XSTRING(28) : error C2501: 'std::basic_string<_E,_Tr,_A>::const_pointer' : missing storage-class or type specifiers
C:/Arquivos de programas\Microsoft Platform SDK\Microsoft Platform SDK\INCLUDE\XSTRING(29) : warning C4346: '_A::reference' : dependent name is not a type
prefix with 'typename' to indicate a type
C:/Arquivos de programas\Microsoft Platform SDK\Microsoft Platform SDK\INCLUDE\XSTRING(29) : error C2146: syntax error : missing ';' before identifier 'reference'
C:/Arquivos de programas\Microsoft Platform SDK\Microsoft Platform SDK\INCLUDE\XSTRING(29) : error C2501: 'std::basic_string<_E,_Tr,_A>::reference' : missing storage-class or type specifiers
C:/Arquivos de programas\Microsoft Platform SDK\Microsoft Platform SDK\INCLUDE\XSTRING(30) : warning C4346: '_A::const_reference' : dependent name is not a type
prefix with 'typename' to indicate a type
C:/Arquivos de programas\Microsoft Platform SDK\Microsoft Platform SDK\INCLUDE\XSTRING(30) : error C2146: syntax error : missing ';' before identifier 'const_reference'
C:/Arquivos de programas\Microsoft Platform SDK\Microsoft Platform SDK\INCLUDE\XSTRING(30) : error C2501: 'std::basic_string<_E,_Tr,_A>::const_reference' : missing storage-class or type specifiers
C:/Arquivos de programas\Microsoft Platform SDK\Microsoft Platform SDK\INCLUDE\XSTRING(31) : warning C4346: '_A::value_type' : dependent name is not a type
prefix with 'typename' to indicate a type
C:/Arquivos de programas\Microsoft Platform SDK\Microsoft Platform SDK\INCLUDE\XSTRING(31) : error C2146: syntax error : missing ';' before identifier 'value_type'
C:/Arquivos de programas\Microsoft Platform SDK\Microsoft Platform SDK\INCLUDE\XSTRING(31) : error C2501: 'std::basic_string<_E,_Tr,_A>::value_type' : missing storage-class or type specifiers
C:/Arquivos de programas\Microsoft Platform SDK\Microsoft Platform SDK\INCLUDE\XSTRING(32) : warning C4346: '_A::pointer' : dependent name is not a type
prefix with 'typename' to indicate a type
C:/Arquivos de programas\Microsoft Platform SDK\Microsoft Platform SDK\INCLUDE\XSTRING(32) : error C2144: syntax error : 'std::iterator' should be preceded by ';'
C:/Arquivos de programas\Microsoft Platform SDK\Microsoft Platform SDK\INCLUDE\XSTRING(32) : error C2698: the using-declaration for 'pointer' cannot co-exist with the existing using-declaration for 'pointer'
C:/Arquivos de programas\Microsoft Platform SDK\Microsoft Platform SDK\INCLUDE\XSTRING(32) : fatal error C1903: unable to recover from previous error(s); stopping compilation
I'll try to reinstall again.
Could you please tell me how to set the include paths?
Why the paths doesn't come pre-configured or at least with some tool or guide to set it up? (in the current release: wxDev-C++ Latest alpha: 3rd May 2006, 6.10 Build 21)
This should help a lot and make it easy for beginners.
If I knew how to setup the paths, I would be happy to code such tool to automatically set paths after installation.
the supplied VC Environment setup binary does that. In the installer's features page select the "Visual C++ Environment Setup". But due to my carelessness it is installed but no shortcut is in the start menu. I'll fix that in my next alpha (today or tomorrow).
Yeah, I know about "Visual C++ Environment Setup". But my VC++ setup is a bit hackish. I installed VC++ 2003 Toolkit free, and installed the old libs and includes from my VC++ 6 in the MS Platform SDK Path, so I don't need to download that huge package (That requires SP2, which I don't have).
But this hackish setup works great. It was working with plain Win32 API programs and with wxDev-C++ + Dynamic-linked WxWidgets.
But the problem is that I can't get the static version to work (because I don't know how to setup the paths... I think it was lucky when it worked with the dynamic-linked version ).
I'll keep trying.
Any helps are welcome.
Sugestion: Why not build a wxDev-cpp version that already comes with paths configured to Vc++ toolkit? (like it was with normal Dev-c++ + Mingw)
We can't do that because VC HAS to be downloaded from Microsoft and installed by the user himself, distributing it as part of our package MIGHT bring us a lawsuit from Microsoft (..just to be safe, we aren't lawyers).
The static releases that I have may/may not work in VC 2003, I built them with VC 2005. Tony and I will probably be updating our VC tutorial.
I just uploaded the latest alpha a few minutes ago. Have a look.
Joel
I tried latest alpha, but couldn't get it to work with VC++ 2003 Toolkit and Static-linked version of wxwidgets devpak.
wxDev-cpp gave me losts of access violation errors and bug report screens.
Also it didn't found wx includes.
Errors:
wx/wx.h: No such file or directory
wx/dialog.h: No such file or directory
I used this configurantion:
BIN:
C:\Arquivos de programas\wxDev-C++\Bin
C:\Arquivos de programas\Microsoft Visual C++ Toolkit 2003\bin
INCLUDES:
C:\Arquivos de programas\Microsoft Visual C++ Toolkit 2003\include
C:\Arquivos de programas\Microsoft Platform SDK\include
C:\Arquivos de programas\wxDev-C++ (also tried C:\Arquivos de programas\wxDev-C++\wx and others...)
LIB:
C:\Arquivos de programas\Microsoft Visual C++ Toolkit 2003\lib
C:\Arquivos de programas\Microsoft Platform SDK\LIB
C:\Arquivos de programas\wxDev-C++\lib\vc_lib
I'm waiting for help to setup wxDev-cpp with VC++ Toolkit and wxwidgets static-linked.
Thanks!