User forums > Using Code::Blocks

CodeBlocks sucks

<< < (2/9) > >>

bcc32x:

--- Quote from: killerbot on October 03, 2018, 10:00:31 pm ---as for 1, can you give steps to reproduce ?

as for 2 : we are going to step up to a new compiler, though we do not consider ourselves as compiler distributors

as for 3 : forum to me always accessible, main page I don't visit that much off course.

as for 4 : the old borland stuff is in there from the past, and hasn't been removed, since it still works, question is, is anybody still using that, probably, but in very low numbers for sure. As for the newer versions, no idea, I gave up on borland the moment c++11 came, are they up to par with that or even c++14/17, I have no idea, if they are not, and the compiler is not free, I would not spend time on it.

as for 5 : this should be fixed, wx should provide this abstraction of the path separator for us

as for 6 : please make your suggestions how you would define each template

as for 7 : this is a hard job, we need to wrap around things like clan for that, just simple parsing can not do the job anymore


Please elaborate on "Your Project Build Option is a disaster, very very stupid and poor engineered (broken by design)", because this sentence is f*** useless, it does not say what is wrong. This is generic blabla bullshit from your side. It is the same as the world sucks, ok great, but what do you want to be fixed ? Should we launch a nuclear rocket so the world explodes and the problem is solved by design. Should I hire a "gun for hire" to shoot complaining people, because when they are all dead no more complaints and we consider then there are no complaints that all is perfect? If you give specific information on what is broken, or certain flows that could be improved or are flawed, then we have something to work on.


And we do not consider ourselves to be the best, we are very aware we are a little niche player, and in certain use cases we are very well suited compared to bigger bloated systems.

--- End quote ---

1. latter post please, it's long.

2. thanks, I like you more than mr. obfuscated who told me "do it yourself".

3. I'm on South East Asia, your whole domain codeblocks.org and it child reported by issitedownrightnow almost constantly down, many time down for more than 7 days, I can only access it a very short time a day like 1 hours but later revisit it down again, make me thing, is this site DDoS-ed?

4. borland launched a clang based compiler long time ago to keep pace with c++ stardard, there are two compiler: bcc32c which keep the old bcc32 syntax, bcc32x which use clang syntax (indeed gcc like syntax). it's very easy for you to update borland 5 template to borland 10.1 which embarcadero freely distribute here: https://www.embarcadero.com/free-tools/ccompiler (require sign up but it's completely free). the only difference causing much problem is borland gave up there brcc32 resource compiler in favor of microsoft rc.exe shipped instead. and microsoft distribute visual studio build tool 2017 (vc2017 compiler) for free.

5. good to hear that.

6. remove what unneccesary, what the hell you do with Java Application template when later it ask for GCC compiler and can't even detect JDK? You should copy netbeans behavior deactivate by default any template the user properly doesn't use and keep only standard Console, Dll, Win32GUI (deactivate all the QT*, WX*...). if the user want, he can easily activate what he need. About Dll, use only DLL template with option in the project option to specify whether it is dynamic or static, support a standard dll with dll.c (or dll.cpp) and dll.h (don't forget this header), dll was intended to write using C then linked by other, why the hell Dynamic Link Library template is C++?

My sentence is not useless, there really problem of out-of-sync between your global project build option and it child Debug and Release, it's very easy to reproduce, you change search directory or liker setting of the global, the first time it sync-ed to the child, the second or third or *th time it doesn't, you have to go the each child and change again, very time consuming: like, you remove a dir from search dir to point to new dir, the child still keep old dir so compiler started errors. it's really broken, I like DevC++ makefile based than your xml based, in my opion xml is evil, I'm plain text fan. and I've visit your dev forum sector and if I not remember wrong, some one actually regret about the decision to use xml based build. To test my word, you just download Win32++ and modifiy some of it sample provided in codeblocks .cbp project with multi compiler and multi target: Debug Borland, Release MingW, Debug VC2003.... and you will see the pain of using your system. I'm never lie.

bcc32x:
1. I can reproduce the problem with my toy dll written in free pascal, not only the delphi dll I used.

LibTest.pas


--- Code: ---library LibTest;

{$mode objfpc}{$H+}

uses
  SysUtils, ctypes;

function DoubleIt(InParam: cint32): cint32; cdecl;
begin
  Result:= InParam * 2;
end;

exports
  DoubleIt;

end.
--- End code ---

LibTest.h


--- Code: ---// too lazy to write header guard so let it is

#include <stdint.h>

int32_t __cdecl DoubleIt(int32_t InParam);

--- End code ---
main.c


--- Code: ---// copy from DevC++ project (successfully build and run) so expect the same for C::B but it isn't

#include <stdio.h>
#include <stdlib.h>
#include "LibTest.h"

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
printf("Double Of %d : %d\n", 3, DoubleIt(3));
system("PAUSE");
return 0;
}
--- End code ---

All the file are in project root folder: C:\LibTest (LibTest is the C::B project).
Add current project root folder C:\LibTest to Search Directory (Compiler and Linker)
(WTF? Why I've to add it to search dir, isn't it obviously must be searched by default?)
Can't add LibTest.dll from Linker setting but choose All file to add it anyway, failed: can't find LibTest.dll!
Follow mingw.org tutorial to create .a file:

dlltool -z LibTest.def --export-all-symbol LibTest.dll

dlltool -d LibTest.def -l LibTest.a

Follow someone on this forum to add this .def file to linker, either by choose All file like as the dll or other linker option (also on this forum, not bookmarked so don't have the link and don't care to search again because too tired)

Failed: can't find LibTest.def!

Add the LibTest.a file to linker (accepted), expect anything to be right but again: failed, can't find LibTest.a!

Either absolute path or relative path the result still failed.

I even try to add all the file to project itself but still not find LibTest!!!

WTF! Does this IDE blind or too stupid to see the file I wonder?

With DevC++, I simple add the header to project and the dll to linker and it's all.

oBFusCATed:

--- Quote from: bcc32x on October 04, 2018, 03:55:28 am ---2. thanks, I like you more than mr. obfuscated who told me "do it yourself".

--- End quote ---
What have I told you?


--- Quote from: bcc32x on October 04, 2018, 03:55:28 am ---3. I'm on South East Asia, your whole domain codeblocks.org and it child reported by issitedownrightnow almost constantly down, many time down for more than 7 days, I can only access it a very short time a day like 1 hours but later revisit it down again, make me thing, is this site DDoS-ed?

--- End quote ---
You have to contact your service provider to see why it is blocking codeblock.org. Just keep in mind that the site had problems for the last one-two weeks. If the complains are from this period, then it was a global problem. It was an exception, not the rule. The problem should be fixed and everything should be back to normal.

bcc32x:

--- Quote from: oBFusCATed on October 04, 2018, 08:11:01 am ---
--- Quote from: bcc32x on October 04, 2018, 03:55:28 am ---2. thanks, I like you more than mr. obfuscated who told me "do it yourself".

--- End quote ---
What have I told you?


--- Quote from: bcc32x on October 04, 2018, 03:55:28 am ---3. I'm on South East Asia, your whole domain codeblocks.org and it child reported by issitedownrightnow almost constantly down, many time down for more than 7 days, I can only access it a very short time a day like 1 hours but later revisit it down again, make me thing, is this site DDoS-ed?

--- End quote ---
You have to contact your service provider to see why it is blocking codeblock.org. Just keep in mind that the site had problems for the last one-two weeks. If the complains are from this period, then it was a global problem. It was an exception, not the rule. The problem should be fixed and everything should be back to normal.

--- End quote ---

You told me study the xml based build file of C::B and add new update compiler myself.

The site codeblocks.org fairly stable now. My provider didn't block it. This is the global problem. But don't blame me. How can I check info about this project? I visit it sourceforge.net repo their's no ticket about it. I myself think it's ddos-ed or major infrastructure upgrade (unlikely because no new version in repo).

BlueHazzard:
OK, now i play the persona non grata and tell you that we need a build log to find the error. You have to understand that without build log we can not tell what you are doing and we can not tell you what is going on. Only by describing you let out information only a build log can tell.


--- Quote ---All the file are in project root folder: C:\LibTest (LibTest is the C::B project).
--- End quote ---
Then add a "." in Project->Build options->Select your project on the left->Search paths->Compiler
and Project->Build options->Select your project on the left->Search paths->Linker
And the compiler will search in your project folder.


--- Quote ---(WTF? Why I've to add it to search dir, isn't it obviously must be searched by default?)
--- End quote ---
That is your opinion. Mine is an other. For example in java it takes automatically some predefined files from some folder and i needed like 100h to find out why it always took the wrong file. It simply had an build in automatic search algorithm. This annoyed me like hell. Better the user has to tell where to search. So he always knows what is going on.
Also if you use different libraries for Debug and release they can not be in the project root folder. All in all it is complex, and codeblocks goes the non idiot proof way and lets the user decide what to do.
You can create a project template where the project folder is added by default: Create a your basic hello world project like you want it. Then File->Save as template. The next time you can use this as base with File->New->Project->User templates
Again: Codeblocks goes the way that a user can decide by itself how to do things...


--- Quote ---Can't add LibTest.dll from Linker setting but choose All file to add it anyway, failed: can't find LibTest.dll!
--- End quote ---
What is the exact error? There you have to differentiate:
1)  The compiler can not find the file per se? Fix the search path in the Project->Build->options->Select the project name on the left from the tree->Search direcotries->Linker
2)  The compiler can find the file but can not read it (this error is not easy to find, because the compiler tells you only about undefined reference). To find this error you have to add the "-v" option to the linker settings in Project->Build options->Select the project name on the left->Linker settings->additional options. The rebuild and look at the build log. The compiler will then tell you that the provided .dll is not usable. To fix this you have to got the dllool way as you described.
But without build log it is difficult to investigate.


--- Quote ---dlltool -z LibTest.def --export-all-symbol LibTest.dll

dlltool -d LibTest.def -l LibTest.a

Follow someone on this forum to add this .def file to linker, either by choose All file like as the dll or other linker option (also on this forum, not bookmarked so don't have the link and don't care to search again because too tired)

Failed: can't find LibTest.def!

Add the LibTest.a file to linker (accepted), expect anything to be right but again: failed, can't find LibTest.a!

--- End quote ---
About this, you have to know that this is a mingw thing. Nothing to do with codeblocks. Also it is a language c/c++ thing. You can not mix different compiler and languages and think this is easy to handle... Every language uses different name mangling, different file formats for libraries, different call conventions ecc...


--- Quote ---I even try to add all the file to project itself but still not find LibTest!!!
WTF! Does this IDE blind or too stupid to see the file I wonder?
--- End quote ---
The IDE does not complain, the compiler complains...


--- Quote ---I like DevC++ makefile based than your xml based, in my opion xml is evil, I'm plain text fan.
--- End quote ---
then go the makefile route:
Project->Properties->Project settings->This is a custom Makefile
Now codeblocks will ignore all things and use the Makefile you provide to generate the binary. Note: No compiler settings are used, you have to write everything in your makefile by hand. Codeblocsk simply calls

--- Code: ---make -f Makefile TARGETNAME
--- End code ---
nothing more, nothing less. You have to add the source files by hand to the Makefile. You can set up how codeblocks calls the makefile (for example don't add the target ecc..)


--- Quote ---My sentence is not useless, there really problem of out-of-sync between your global project build option and it child Debug and Release, it's very easy to reproduce, you change search directory or liker setting of the global, the first time it sync-ed to the child, the second or third or *th time it doesn't, you have to go the each child and change again, very time consuming: like, you remove a dir from search dir to point to new dir, the child still keep old dir so compiler started errors.
--- End quote ---
I use codeblocks on a daily basis and never encountered this. Codeblocks uses basically this hierarchy to set paths and compiler options:

--- Code: ---Global compiler settings->Project settings->Target settings
--- End code ---
But you can change this behavior in Project->Build options->Select the target name in the left tree control->Compiler settings->policy:

--- Quote ---Append target options to project options
--- End quote ---
is the default, but there are many more policies..
Generally you add the search directories only at project level. This propagates to target level. Normally you won't change the global compiler settings...

The only thing i know that does not get updated and what annoys me a lot is the back tick cache. So if you use something like this in your build options

--- Quote ---´wx-config --libs´
--- End quote ---
You have to restart codeblocks if something changes...

Codeblocks has it bugs and its flaws and we try everyday to fix them if a user reports errors. But it is not a easy to use software and it does not intend to be. You are using a build system you have to learn, like make files or cmake. In addition you want to mix different compilers and languages, what adds complexity on top. This is not a codeblocks thing but a compiler thing.
You posted 3 messages in this forum (as far as i can see):
1) The obligatory "i am human"
2) The question for adding the borland compiler
3) This rant.
If you would have asked for help sooner and provide build logs we would be able to help you and keep the fustration level low...

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version