Recent Posts

Pages: [1] 2 3 4 5 6 ... 10
Looks like the issues are now related to the Referrer field...,25278.msg172310/topicseen.html#msg172310

If you follow the link from the download page you get booted:

But if you "type" the whole URL manually you are fine:
Also the download advert at the bottom is not really nice...
For some reason the https does not work on this sites, at least from my point of view...
General (but related to Code::Blocks) / Re: Welcome Newcomers - PLEASE READ!!!
« Last post by Denis Ngam on February 06, 2023, 10:10:42 pm »
I am new!
I am really here. Hoping to learn some new and interesting things. :) :)
On the date of 15/1/23 (15th January 2023) I downloaded the Code::Blocks installation link given in the Binary releases page ( at the Microsoft Windows ---> mingw no setup installation. A few weeks later a scan reported a virus (called "Worm LNK file") infecting my system in certain areas(Internet Explorer among others). I safely quarantined and deleted the file but the date of the addition of the virus was reported to be the date I downloaded from the above link. Would any administrator look into this just to be on the safe side? Thank you!

Maybe ... I examine the help of wlink (.ie. "wlink ?") with the two binaries in C:\WATCOM\binnt and in C:\WATCOM\binnt64, and the directive "file" before " object files in the command line of linker seems mandatory with the twice.
But, this is ... search of perfection,   :D ...
After these exchanges, I'm proud to announce all my generation on Windows 11, Debug/Release, 32 bits or 64 bits, with all compilers (Borland, GCC (many configurations), CLANG (many configurations), WATCOM, MSVC, DMC, LCC, Pelles C) are treated correctly with CB in the same project. Consult for example.
Many thank's of devlopers and you.

Thierry D.
Hello Speedreadersteve.

Initially you wrote:
... since I compiled a 500+ line file - mostly of comments and ~200 lines code, a lot of statements in main() - it's taken a consistent 6 seconds. ...

Please keep in mind that the compiler is not only processing the code lines written by you but all code lines in the header-files you have included. And this may result in your issue by just small changes in your self written code.

Before the compiler starts the translation of the file the preprocessor will extend your own code.
  • Every include line will be replaced by the complete content of the included file. And if an included file contains include-commands by itself the preprocessor is replacing  this include commands by the corresponding file content also.
  • If you use preprocessor-defines (maybe provided by an used library) the corresponding CONSTANTS and MACROS, used in your code, will be replaced by the code used while the definition with their #define statement.
  • This is just a very rough and general description. But I hope you understand that already the use of the #include and #define directives  could increase the workload of the complier even your own code my just contain less then 10 lines.

Especially today many modern libraries for example provided by the boost-project are based on meta-programming. But you may already have a similar effect if you just use a STL (Standard Template Library) provided by a standard C++ build suite.
  • This means that the library may contain just header-files, which define templates only.  This means before actively using this libraries, they could not be build, since especially data-types are just defined by placeholders.
  • By using them you define the specific data-type for each placeholder in your own code and based on this definition the compiler is now creating the final code of the library object you want to use.
  • This is increasing the workload of your compiler and you could compare it with the preprocessor workload.

Furthermore, if you use a meta-programming based library or a STL in a header, every cpp file that is including this header directly or indirectly will be affected by a combination of both effects.

I hope that this will give you an idea how you could blow up the build effort just by adding 1 or 2 lines of code.

You may reduce your resulting problems by a pre-compilation of your header files as suggested by the other discussion participants. Thus, please follow their advises.

However, you may already limit the initial root-cause by a refactoring of your software design.
  • Limit the dependencies between your sources as far as possible. Whenever you are able to eliminate the use of an other module or class you could eliminate the corresponding including of a header.
  • Split big header files when ever possible. If you have a header that will be included by 10 other files but every including file is only using 10% of the headers content, try to split your header in 10 smaller headers with the goal that every using source is just including one new smaller header with the needed information.
  • If possible include headers in cpp files but not in other headers to reduce indirect includes.

Do you already use Doxygen? together with the tool Dot from Graphviz ? This tool is able to provide you for every of your source-file an include graph that shows you not only the direct but the indirect included files. This graphs will help you to detect the most complex include dependencies.

Best regards,
                     Eckard Klotz.

PS.: Dear forum admin. I know, actually this is not a programming discussion. But I face very often similar issues in my own projects and had to learn over the time that the reason is not the tool (Code::Blocks, build-suite, ...) but in the most cases the software design. Thus I hope sharing my experiences will help to reduce the users frustration a little bit.
Development / Re: UI for project globs aka automatic source directories
« Last post by BlueHazzard on February 04, 2023, 04:44:11 pm »
Thank you! Fixed in trunk
Development / Re: UI for project globs aka automatic source directories
« Last post by Miguel Gimenez on February 04, 2023, 10:51:44 am »
I get this warnings/errors when trying to compile in MSW-32 bits:
projectfile.h||In constructor 'ProjectFile::ProjectFile(cbProject*)':|
projectfile.h|237|warning: 'ProjectFile::project' will be initialized after [-Wreorder]|
projectfile.h|195|warning:   'GlobId ProjectFile::globId' [-Wreorder]|
projectfile.cpp|26|warning:   when initialized here [-Wreorder]|

projectmanagerui.o||In function `ZN16ProjectManagerUI13OnManageGlobsER14wxCommandEvent':|
C:\Codeblocks\src\src\projectmanagerui.cpp|1657|undefined reference to `ManageGlobsDlg::ManageGlobsDlg(cbProject*, wxWindow*, int, wxPoint const&, wxSize const&)'|
C:\Codeblocks\src\src\projectmanagerui.cpp|1657|undefined reference to `ManageGlobsDlg::~ManageGlobsDlg()'|
C:\Codeblocks\src\src\projectmanagerui.cpp|1657|undefined reference to `ManageGlobsDlg::~ManageGlobsDlg()'|
The undefined references appear because you added the new files to all projects but CodeBlocks_wx32.cbp. I have attached a patch for this part.
Development / Project files for 'wx-3.1.x', 'wx-3.2.x' and unix do not exist
« Last post by LETARTARE on February 04, 2023, 10:39:05 am »
I use 'OpenSuse::Leap-15.4' which provides 'wx-3.2.1' and 'gtk-3'
But the project files for 'Linux' are missing for 'wx-3.1.x' and 'wx-3.2.x'.
I had provided a fix with the ticket, but it should be checked.
Pages: [1] 2 3 4 5 6 ... 10