Page 1 of 2

ANN: wxPack Released

Posted: Wed Aug 02, 2006 3:39 pm
by RJP Computing
I started a new SourceForge.net project to help wxWidget developers build wxWidgets applications, rather than spend time building wxWidgets itself. It is a package that comes with wxWidgets pre-compiled by various compilers and in various forms (dll, libs, Unicode, and non-Unicode) plus much, much more! It has many components to help developers focus on writing wxWidgets applications rather than on building wxWidgets. I know that this package will also make people new to wxWidgets have a much easier time trying wxWidgets out.

Here is a quick list of features:
wxPack is a complete wxWidgets Development Kit. Includes: wxWidgets source/binaries, Visual Studio 7+ Project Wizard and Integrated Help, wxFormBuilder (RAD Tool), and various contributed widgets.

For a full list of features look here:
wxPack Features

Update (08/21/2006): There is a new release of wxPack. It now includes wxWidgets v2.7.0. This is a big update. If you want to continue to use wxWidgets v2.6.3 do not install this version. It will uninstall the old version of wxPack during its install.

Download details:
wxPack Download

Please give feedback.

Posted: Thu Aug 03, 2006 4:35 am
by priyank_bolia
165MB :?:

Posted: Thu Aug 03, 2006 6:38 am
by metalogic
This is awesome. The pre-build libraries should be very popular as that request keeps coming up in the forums.

Posted: Thu Aug 03, 2006 7:08 am
by Jorg
If wxPack would allow a very easy way to simply manage pre-compiled components I am all for it!

The problem I always encounter is that I have to recompile a component from someone, 9 out of 10 times it does not work out of the box.

If every contributor would deliver a binary for windows and maybe a source RPM or .so for every major Linux distrib, it would be very nice to have something like the dev pack from wxDev-Cpp. Download, add and use. The manager keeps track of what files are used by what component, and simply uninstalling the component would remove the files again. If the author cannot make the binaries, maybe some others can or one of the build PC's used by wxWidgets.

This has been a long standing wish on the wx mailinglist. I think even Franchesco Montorsi was working on that (I hope I got his name right).

wxCode is cool, but I do not like it that everything is still in source when it can be distributed as DLL / .so as well.

Anyway, good work!
- Jorgen

Posted: Thu Aug 03, 2006 8:27 am
by kolo
May be, it will be usefull if you also make one package for each compilation. I mean, one pack for static library and so on. I always use only static library build, and have no needs in dll`s .
And another one moment, why u don`t build wxWidgets with VS 2005?

Posted: Thu Aug 03, 2006 3:25 pm
by RJP Computing
priyank_bolia wrote: 165MB :Question:
Well I am packing almost 1.7 gigs in there. It is actually pretty good when you know what you are getting. I think. :oops:
metalogic wrote: This is awesome. The pre-build libraries should be very popular as that request keeps coming up in the forums.
Thanks. Yeah I think we all struggle with this task. That is why I created the project.
metalogic wrote: ...
Anyway, good work!
- Jorgen
Thanks.
kolo wrote: May be, it will be usefull if you also make one package for each compilation. I mean, one pack for static library and so on. I always use only static library build, and have no needs in dll`s .
Well in the installer you can choose to only install what you want. For example only the VC libs if you so choose. The only problem is you still need to download the entire package.
kolo wrote: ...
why u don`t build wxWidgets with VS 2005?
Good question. I don't because I am taking the lowest common denominator approach. This library can be used with VC 7.1 and VC 8.0. If I only compiled with VC 8.0 then you couldn't use it in VC 7.1.

Posted: Thu Aug 03, 2006 4:56 pm
by metalogic
RJP Computing wrote:The only problem is you still need to download the entire package.
What are you using for an installer? Many installers, including Inno Setup let you download a stub installer (only a few kb) and then the installer only downloads what the user actually chose. It's fairly easy to do. If you use Inno I can lend a hand.

Posted: Thu Aug 03, 2006 5:03 pm
by benedicte
You could also use the WebUpdate component available on wxCode.
It can download packages (sub-parts) of an app.

Posted: Thu Aug 03, 2006 9:51 pm
by RJP Computing
metalogic wrote:What are you using for an installer? Many installers, including Inno Setup let you download a stub installer (only a few kb) and then the installer only downloads what the user actually chose. It's fairly easy to do. If you use Inno I can lend a hand.
I use INNO Setup and I am aware of the internet downloading ability and that is a feature I am going to make. I just also like the full package for computers not on the internet and also behind a firewall.
benedicte wrote:You could also use the WebUpdate component available on wxCode.
It can download packages (sub-parts) of an app.
I am going to look at this. It might be great for an updater.

@metalogic and benedicte
There is a problem that makes an downloader hard on SourceForge, the mirrors. I need to investigate this further. The problem is do I hard code it to use a single mirror. That doesn't seem to help people who are far away from the mirrors location.

Any thoughts?

Posted: Fri Aug 04, 2006 4:58 pm
by zhouhao
RJP Computing wrote:
kolo wrote: ...
why u don`t build wxWidgets with VS 2005?
Good question. I don't because I am taking the lowest common denominator approach. This library can be used with VC 7.1 and VC 8.0. If I only compiled with VC 8.0 then you couldn't use it in VC 7.1.
[/quote]

Great job. Thanks for your effort. But I got some problem if I use your prebuilt binary since msvcp71d.dll (something like that) doesn't exist. So I rebuild vc dll by using your wxBuild_vc.bat. My compiler is vc 8.0. The compilation was finished without any problem. But I got link error when I used your wizard to create a testing app. The error messages are:

fileversion.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: unsigned short const * __thiscall wxStringBase::c_str(void)const " ([email protected]@@QBEPBGXZ) referenced in function "public: bool __thiscall wxFileVersion::Open(class wxString)" ([email protected]@@[email protected]@@Z)
fileversion.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: class wxString & __thiscall wxString::operator=(unsigned short const *)" ([email protected]@[email protected]@Z) referenced in function "public: bool __thiscall wxFileVersion::Open(class wxString)" ([email protected]@@[email protected]@@Z)
fileversion.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: static class wxString __cdecl wxString::Format(unsigned short const *,...)" ([email protected]@@[email protected]) referenced in function "public: class wxString __thiscall wxFileVersion::QueryValue(class wxString,unsigned long)" ([email protected]@@[email protected]@[email protected]@Z)
testwxPanel.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall wxString::wxString(unsigned short const *)" ([email protected]@[email protected]@Z)
testwx_GUI.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall wxString::wxString(unsigned short const *)" ([email protected]@[email protected]@Z) referenced in function "public: __thiscall MainFrame::MainFrame(class wxWindow *,int,class wxString,class wxPoint,class wxSize,int)" ([email protected]@[email protected]@@[email protected]@[email protected]@[email protected]@[email protected])
fileversion.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall wxString::wxString(unsigned short const *)" ([email protected]@[email protected]@Z)
testwx.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall wxString::wxString(unsigned short const *)" ([email protected]@[email protected]@Z)
testwxAbout.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall wxString::wxString(unsigned short const *)" ([email protected]@[email protected]@Z)
testwxFrame.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall wxString::wxString(unsigned short const *)" ([email protected]@[email protected]@Z)
fileversion.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) unsigned short const * const wxEmptyString" ([email protected]@3PBGB) referenced in function "public: class wxString __thiscall wxFileVersion::QueryValue(class wxString,unsigned long)" ([email protected]@@[email protected]@[email protected]@Z)
testwxAbout.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) unsigned short const * const wxEmptyString" ([email protected]@3PBGB)
testwx_GUI.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) unsigned short const * const wxEmptyString" ([email protected]@3PBGB)
testwx.obj : error LNK2001: unresolved external symbol "public: virtual bool __thiscall wxApp::Initialize(int &,unsigned short * *)" ([email protected]@@[email protected])
testwxAbout.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) class wxString __cdecl operator+(class wxString const &,unsigned short const *)" ([email protected][email protected]@[email protected]@Z) referenced in function "public: __thiscall testwxAbout::testwxAbout(class wxWindow *)" ([email protected]@[email protected]@@@Z)
testwx_GUI.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) class wxString __cdecl operator+(class wxString const &,unsigned short const *)" ([email protected][email protected]@[email protected]@Z)
testwxPanel.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) unsigned short const * const wxMessageBoxCaptionStr" ([email protected]@3PBGB) referenced in function "private: void __thiscall testwxPanel::OnOK(class wxCommandEvent &)" ([email protected]@@[email protected]@@Z)
testwx_GUI.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) class wxString __cdecl operator+(class wxString const &,unsigned short)" ([email protected][email protected]@[email protected]@Z) referenced in function "public: __thiscall MainFrame::MainFrame(class wxWindow *,int,class wxString,class wxPoint,class wxSize,int)" ([email protected]@[email protected]@@[email protected]@[email protected]@[email protected]@[email protected])
testwx_GUI.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) unsigned short const * const wxStatusLineNameStr" ([email protected]@3PBGB) referenced in function "public: __thiscall MainFrame::MainFrame(class wxWindow *,int,class wxString,class wxPoint,class wxSize,int)" ([email protected]@[email protected]@@[email protected]@[email protected]@[email protected]@[email protected])
testwx_GUI.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) unsigned short const * const wxFrameNameStr" ([email protected]@3PBGB) referenced in function "public: __thiscall MainFrame::MainFrame(class wxWindow *,int,class wxString,class wxPoint,class wxSize,int)" ([email protected]@[email protected]@@[email protected]@[email protected]@[email protected]@[email protected])
testwx_GUI.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) unsigned short const * const wxButtonNameStr" ([email protected]@3PBGB) referenced in function "public: __thiscall MainPanel::MainPanel(class wxWindow *,int,class wxPoint,class wxSize,int)" ([email protected]@[email protected]@@[email protected]@[email protected]@[email protected])
testwx_GUI.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) unsigned short const * const wxPanelNameStr" ([email protected]@3PBGB) referenced in function "public: __thiscall MainPanel::MainPanel(class wxWindow *,int,class wxPoint,class wxSize,int)" ([email protected]@[email protected]@@[email protected]@[email protected]@[email protected])
testwx_GUI.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) unsigned short const * const wxStaticTextNameStr" ([email protected]@3PBGB) referenced in function "public: __thiscall AboutDlg::AboutDlg(class wxWindow *,int,class wxString,class wxPoint,class wxSize,int)" ([email protected]@[email protected]@@[email protected]@[email protected]@[email protected]@[email protected])
testwx_GUI.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) unsigned short const * const wxStaticBitmapNameStr" ([email protected]@3PBGB) referenced in function "public: __thiscall AboutDlg::AboutDlg(class wxWindow *,int,class wxString,class wxPoint,class wxSize,int)" ([email protected]@[email protected]@@[email protected]@[email protected]@[email protected]@[email protected])
testwx_GUI.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) unsigned short const * const wxStaticBoxNameStr" ([email protected]@3PBGB) referenced in function "public: __thiscall AboutDlg::AboutDlg(class wxWindow *,int,class wxString,class wxPoint,class wxSize,int)" ([email protected]@[email protected]@@[email protected]@[email protected]@[email protected]@[email protected])
testwx_GUI.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) unsigned short const * const wxDialogNameStr" ([email protected]@3PBGB) referenced in function "public: __thiscall AboutDlg::AboutDlg(class wxWindow *,int,class wxString,class wxPoint,class wxSize,int)" ([email protected]@[email protected]@@[email protected]@[email protected]@[email protected]@[email protected])
Release\testwx.exe : fatal error LNK1120: 17 unresolved externals
Build log was saved at "file://e:\Projects\testwx\testwx\Release\BuildLog.htm"
testwx - 26 error(s), 0 warning(s)

Any clue?

By the way, your pre-built version can be run in release mode but not in debug mode.

Thanks

Posted: Sat Aug 05, 2006 7:47 am
by zhouhao
I downloaded mvcp71d.dll mvcr71d.dll. Now my testing program is working but I got another new problem. When I added something like wxLog::SetActiveTarget(new wxLogStderr(m_fpLog));, I could not link anymore. The error message is:

test.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall wxLog::DoLog(unsigned long,unsigned short const *,__int64)" ([email protected]@@[email protected])
test.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall wxLogStderr::DoLogString(unsigned short const *,__int64)" ([email protected]@@[email protected])

I've checked the setup.h. The wxUSE_LOG set to 1 already. What's wrong with it?

Posted: Sat Aug 05, 2006 7:45 pm
by RJP Computing
zhouhao wrote:I downloaded mvcp71d.dll mvcr71d.dll. Now my testing program is working but I got another new problem. When I added something like wxLog::SetActiveTarget(new wxLogStderr(m_fpLog));, I could not link anymore. The error message is:

test.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall wxLog::DoLog(unsigned long,unsigned short const *,__int64)" ([email protected]@@[email protected])
test.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall wxLogStderr::DoLogString(unsigned short const *,__int64)" ([email protected]@@[email protected])

I've checked the setup.h. The wxUSE_LOG set to 1 already. What's wrong with it?
Well you rebuilding it makes it hard for me to guess what is wrong. I am not trying to be difficult I just know that it works perfectly under VC 8.0 for many people.

I would like to try to see if it is legal for me to include the debug/release VC 7.1 run-time in the installer and be done with these problems.

I do have a couple of things for you try.

The setup.h is actually a tricky beast. You need to be sure that it is NOT in the 'include/wx' directory during the build process. Also that you delete the 'vc_lib\wsw[du]' directory. I believe that is the place it actually gets its information for building the wxWidgets library. The 'vc_lib\wsw[du]' directory is created first thing when building. It is copied from the 'include\wx\wsm' directory, so make your configuration to setup.h from there. Clear as mud isn't it?

Are you sure you are linking against the library that wxLog needs?

Also check your 64-bit compatibility mode for the compiler. If it is set then try to un-set it.

Posted: Sun Aug 06, 2006 2:09 pm
by zhouhao
Sorry. I think I have to clarify that the new problem ( wxLog problem ) is with the original build of wxPacks not from my own build. But I do need the vc7.1 runtime dll such as msvcp71d.dll for debug mode. If in release mode, everything seems to be fine.

I tried to disable 64-bit compatibility mode but still got the same problem. Since I'm using MONOLITHIC build so that I don't need to link to any other libarary. Am I right?

Anyway thanks for your reply.

Posted: Sun Aug 06, 2006 6:05 pm
by RJP Computing
zhouhao wrote:Sorry. I think I have to clarify that the new problem ( wxLog problem ) is with the original build of wxPacks not from my own build.
OK. Well I can make sure that function works for me and let you know.
zhouhao wrote:But I do need the vc7.1 runtime dll such as msvcp71d.dll for debug mode. If in release mode, everything seems to be fine.
Even the wxLog functions work fine? That is what I would expect.
zhouhao wrote:I tried to disable 64-bit compatibility mode but still got the same problem.
I figured that wouldn't make a difference. It was just a thought.
zhouhao wrote:Since I'm using MONOLITHIC build so that I don't need to link to any other libarary. Am I right?
Most of the time you are right. I know if you are using the wxXML functions then expat library is needed. That is just an example.
zhouhao wrote:Anyway thanks for your reply.
No problem.

Digg the wxPack

Posted: Sun Aug 06, 2006 6:10 pm
by RJP Computing
Well this is just for fun but somebody put the release on http://digg.com and it would be really neat to see it make the front page. :D If you like wxPack and want to make some noise on a very big news/technology site please go and "digg" the story. This will show just how big wxWidgets user base can be. :D