Code::Blocks Forums
User forums => Help => Topic started by: FlyingIsFun1217 on January 28, 2007, 02:48:47 am
-
Hey,
I just downloaded Code::Blocks to see what it was like, and after trying to compile the default wxWidgets program, found out that I needed to download wxWidgets seperately (Yeah, I'm used to wxDev-C++). So thats been done.
Now when I try and compile the project (after changing the wxwidgets version in project->Build options to 2.8.0), I just get a bunch of errors, the first being "wx/setup.h: No such file or directory".
What should I do to be able to fully work with wxWidgets in Code::Blocks? It seems like a great IDE!
Thanks!
FlyingIsFun1217
-
You probably just need to set your global variables.
Bet sure to follow the compiling directions for you OS from
wiki.codeblocks.org.
(http://img262.imageshack.us/img262/1714/125qj7.png)
-
Set global variables? How?
I also assume that when you say to follow the compiling directions for (in my case) Windows that you are talking about compiling wxWidgets (found here (http://wiki.codeblocks.org/index.php?title=Compiling_wxWidgets_2.6.2_to_develop_Code::Blocks_%28MSW%29), under Building wxWidgets). I tried this, but only ever got errors. Maybe because the version I downloaded came with MinGW?
FlyingIsFun1217
-
MainMenu->Settings->Global Variables
-
You can use direct path in place of Global Variable. Use the absolute Path of wx version in the following dialog in the textbox.
(http://img228.imageshack.us/img228/3856/wxwidgetswizwxlocvw2.png)
For example, in my PC, wx-2.6.3 is kept at C:\wxWidgets-2.6.3 and wx-2.8.0 is kept at C:\wxMSW-2.8.0. Please specify the top level dir. C::B will find out include and lib dir.
Code::Blocks doesn't come with pre-compiled wx libs. You can compile it on your own, or download wxPack (http://wxpack.sourceforge.net). wxPack comes with wx lib compiled with GCC and MSVC. That might be helpful.
-
I believe that wxPack should solve my problem.
Thanks for the help, I'll post my results in a while.
FlyingIsFun1217 :)
-
Ok, I've got all of the bugs worked out, except for one.
Output gives:
"Cannot find -lwxmsw28"
?
Thanks again,
FlyingIsFun1217
-
I think you are trying to use Monolithic build which is unavailable in your system. Uncheck the option wxWidgets is built as monolithic library in the wizard.
Regards,
Biplab
P.S.: If you are not using the newer wizard then please read the following post.
http://forums.codeblocks.org/index.php?topic=4768.0 (http://forums.codeblocks.org/index.php?topic=4768.0)
-
Sorry for not posting a reply sooner than I did.
I will try installing it without it being a monolithic build.
As far as the new wizard goes, I have downloaded it and put everything where it goes, but I can't say that I know where to access it within Code::Blocks. Where can it be found, and more importantly, what is it's usefulness?
Thanks!
FlyingIsFun1217
-
Hi,
after installing the new wxWidgets wizard you can access it by choosing "File"->"New"->"Project"->"wxWidgets project".
What the wizard does is setting up your project to use wxWidgets (e.g. inserting directory search paths, libraries to link to, etc.).
You may as well create an empty project and start wx coding, but then you'll have to configure the project settings to use wxWidgets manually.
-
Does the version of codeblocks being used have to be a nightly? I am currently using the release candidate, and all I get is the normal setup, no dialog.
I'll try reinstalling it...
FlyingIsFun1217
-
Does the version of codeblocks being used have to be a nightly?
Yes.
-
Does the version of codeblocks being used have to be a nightly?
Yes.
It's officially shipped with 31st January 2007's nightly. Please download it and you won't need to install it manually. :)
You may as well create an empty project and start wx coding, but then you'll have to configure the project settings to use wxWidgets manually.
Which project settings are you talking of?? In my PC I've retested it on request from manutd. It's working perfectly. You are only required to add source files to it. But the source you are adding should be properly written.
I'm not sure which type of errors you are getting. But if you face any problem, please post full details. Otherwise don't post such misleading informations.
Just do a simple test. First create a project using the wizard. Later create an empty project using the same wizard. Now add the source files to empty project from first project. Check whether it compiles or not. I strongly believe it will compile.
-
Which project settings are you talking of??
I've meant an empty non-wx-wizard project. You have to add wx-libraries and search path, then :)
-
Which project settings are you talking of??
I've meant an empty non-wx-wizard project. You have to add wx-libraries and search path, then :)
Even if you generate empty project, the search path and libraries are automatically added depending upon the your selection. You can select wx config, additional lib even after checking Create Empty project. Whatever you select will be added to the project file.
The procedure remained same. If you request an Empty Project necessary settings, lib will be added but No File will be added to the project.
There is some issues if you select Empty project with PCH support. It's not a bug but due to the mismatch between the way support is added and the way it is used by the users. I'll add a warning to inform the user about Possible Issue that may arise due to this settings. :)
-
Ok, downloaded the nightly.
When I try and run the exe though, I get:
This application has failed to start because wxmsw26u_gcc_cb.dll was not found. Re-installing the application may fix this problem.
How can I get it running?
Thanks again!
FlyingIsFun1217
-
Nevermind, I was being an idiot.
I'll try it out now.
FlyingIsFun1217 :)
-
Download the following two files.
http://prdownload.berlios.de/codeblocks/wxmsw26u_gcc_cb_wx2.6.3p2AndCbPatch_version3.7z
and
http://prdownload.berlios.de/codeblocks/mingwm10.7z
Extract them in the folder where you find the codeblocks.exe file. :)
-
Yeah, done and done. Heck, I even got far enough to be able to build a project that was created using wxDev-C++. Of course, I just deleted the files in the newly created wxWidgets project, etc.
What I would really like to know is: When installing wxWidgets through wxPack, I can choose to install the GCC libs and/or the dll. Obviously, the dll is MUCH smaller, and would be much better suited for my 20 gb hard drive. Is there a way I can get Code::Blocks to use the wxWidgets dll to compile a program? Or is that what "Use wxWidgets DLL" is going to do?
Also (edit), I installed the minGW compiler so that I could uninstall the CodeBlocks RC, but now I just get the error "\mingw\lib\crt2.o:crt1.c:(.text+0x16a):: undefined reference to `__cpu_features_init'
:: === Build finished: 1 errors, 0 warnings ===". What do I need to change?
Thanks again!
FlyingIsFun1217
-
Is there a way I can get Code::Blocks to use the wxWidgets dll to compile a program? Or is that what "Use wxWidgets DLL" is going to do?
You are right. Select that option.
-
Cool.
Going back to my off-topic problem though, how can I fix the error the linker is giving me?
Thanks a million!
FlyingIsFun1217
-
I overlooked your linking problem. It seems to me that you didn't install MinGW Runtime. Download it from-
http://prdownloads.sourceforge.net/mingw/mingw-runtime-3.11.tar.gz?download
-
Cool. How do I "install" it though?
Thank you very much!
FlyingIsFun1217
-
Extract the contents of the file in C:\MinGW folder or to your MinGW installation folder. :)
-
Ok... :P
Now I get: "undefined reference to 'WinMain@16'".
AAAAHHHHH!!!!!!
FlyingIsFun1217 :)
-
Ok... :P
Now I get: "undefined reference to 'WinMain@16'".
AAAAHHHHH!!!!!!
FlyingIsFun1217 :)
Probably you didn't declare any WinMain function. Did you declare wxApp derived class and used IMPLEMENT_APP() macro? Please provide more details.
-
Well, for some reason, all it took was a restart of Code::Blocks.
Now my only concern is that when trying to run the program, it wants wxbase28_gcc.dll. Is it expecting the dll of wxwidgets to run it since I compiled it with the dll?
How can I get to to be standalone?
Thanks again for your cooperation!
FlyingIsFun1217
-
Don't link against dll. Uncheck the option Use wxWidgets DLL from wizard. You should also have static lib of wx in your system. If you are using wxPack then it will be there.
-
So to be able to use the wxWidgets dll provided with wxPack, I HAVE to have it to run the program?
Ok, will use monolithic build.
Thanks!
FlyingIsFun1217
-
Use the following thumb-rule to select wx lib.
- Static - When you want your application to be self sufficient. Means don't rely upon external wx DLLs.
- DLL - You wish your application exe size to be smaller.
- Monolithic DLL - You'll distribute only one wx DLL.
- Monolithic Static - It's same as using Static. It's your personal choice to select this one.
So just don't take your decision arbitrarily. I use DLL while developing as I have to recompile it frequently. During distribution I prefer static wx lib. Now it's your personal choice on selecting appropriate lib. :)
-
Well, I will just have to use the library only, as space is very limited on my 20 gb hard drive.
Thank you again!
FlyingIsFun1217