Author Topic: DMD compiler problems... -Wall option?  (Read 18495 times)

Offline Silverling

  • Multiple posting newcomer
  • *
  • Posts: 18
DMD compiler problems... -Wall option?
« on: November 22, 2006, 10:17:19 pm »
When I try to compile, even the simplest D program, the compiler goes like this:

dmd.exe -Wall -w -g  -IC:\dmd\src\phobos  -c main.d -ofobj\Debug\main.obj
Error: unrecognized switch '-Wall'

Ok, I lost more than 30 mins searching of the -Wall option on the compiler settings, but there is none. No check box to enable/disable with this parameter. What should I do?!

Offline afb

  • Developer
  • Lives here!
  • *****
  • Posts: 884
Re: DMD compiler problems... -Wall option?
« Reply #1 on: November 22, 2006, 10:33:57 pm »
There is no "-Wall" in DMD settings, so the "-w" flag you have there is good enough...
Maybe the flag was added explicitly ? Check the .cbp XML file directly as a last resort.

Offline MortenMacFly

  • Administrator
  • Lives here!
  • *****
  • Posts: 9508
Re: DMD compiler problems... -Wall option?
« Reply #2 on: November 22, 2006, 11:12:37 pm »
Ok, I lost more than 30 mins searching of the -Wall option on the compiler settings, but there is none. No check box to enable/disable with this parameter. What should I do?!
There is one (I swear!) in one of these places:
1.) Settings -> Compiler and Debugger -> [Your D Compiler] -> Tab "Compiler" -> Tab "Other options"
2.) [Your project's build options] -> Tab "Compiler" -> Tab "Other options"
3.) [Your project's target's build options] -> Tab "Compiler" -> Tab "Other options"

C::B does *only* apply the settings you have setup in your project, nothing else. You *will* find the -Wall settings somewhere.

I guess this happened because you have started to create a "C/C++" project and then changed the compiler to "D"... right?

With regards, Morten.
Compiler logging: Settings->Compiler & Debugger->tab "Other"->Compiler logging="Full command line"
C::B Manual: http://www.codeblocks.org/docs/main_codeblocks_en.html
C::B FAQ: http://wiki.codeblocks.org/index.php?title=FAQ

Offline Silverling

  • Multiple posting newcomer
  • *
  • Posts: 18
Re: DMD compiler problems... -Wall option?
« Reply #3 on: November 22, 2006, 11:13:42 pm »
Yep. The -Wall option is set on the project file. Is this a C::B bug? I just started using C::B and programming D.

And no, I choose Digital Mars D compiler right from the beginning.

By the way. Now that I have replaced the line, it complays that it cannot find "c:\dmd\bin\..\..\dmd\bin\linker.exe"
True, there is no such file, but the linker on the options page is the "dmd.exe" file. Why does it search for linker!?

Offline MortenMacFly

  • Administrator
  • Lives here!
  • *****
  • Posts: 9508
Re: DMD compiler problems... -Wall option?
« Reply #4 on: November 22, 2006, 11:15:53 pm »
Yep. The -Wall option is set on the project file. Is this a C::B bug?
Depends. Did you use the wizard to create a "D" application? There is a known bug in the wizard (IMHO also reported in the bug tracker)... BTW: It's assigned to me I'd say... :oops: :lol:
With regards, Morten.
Compiler logging: Settings->Compiler & Debugger->tab "Other"->Compiler logging="Full command line"
C::B Manual: http://www.codeblocks.org/docs/main_codeblocks_en.html
C::B FAQ: http://wiki.codeblocks.org/index.php?title=FAQ

Offline Silverling

  • Multiple posting newcomer
  • *
  • Posts: 18
Re: DMD compiler problems... -Wall option?
« Reply #5 on: November 22, 2006, 11:28:17 pm »
I began by starting a OpenGL application with DMD as the compiler, but the code was C, so I deleted the project and started a "empty project" and selected DMD. The I created a new file, pasted all the code from the example at digital mars and tried to compile. The errors then appeared. By the way, the -Wall option is nowhere to be found. If it does exist, send me a screenshot (lol, looks like I'm daring you :P).

Offline MortenMacFly

  • Administrator
  • Lives here!
  • *****
  • Posts: 9508
Re: DMD compiler problems... -Wall option?
« Reply #6 on: November 22, 2006, 11:41:33 pm »
By the way, the -Wall option is nowhere to be found. If it does exist, send me a screenshot (lol, looks like I'm daring you :P).
What do you mean? So it's still in your project? If so, please strip down your project and attach (zipped) to  another post into this thread. Then I can tell you where this option get's set.
...if you mean something else: Please give me a detailed step-by-step instruction how to reproduce. From what I see the "-Wall" option for a "D" project only get's set, if you choose the gdc compiler (GNU D compiler) and *not* DMD (Digital Mars D compiler). For the first choice this should be correct, as the GNU compiler does indeed offer the -Wall option... AFAIK.
With regards, Morten.
Compiler logging: Settings->Compiler & Debugger->tab "Other"->Compiler logging="Full command line"
C::B Manual: http://www.codeblocks.org/docs/main_codeblocks_en.html
C::B FAQ: http://wiki.codeblocks.org/index.php?title=FAQ

Offline Silverling

  • Multiple posting newcomer
  • *
  • Posts: 18
Re: DMD compiler problems... -Wall option?
« Reply #7 on: November 23, 2006, 12:03:08 am »
Here is my project. Altered mind you. I opened the project file with WordPad and removed the compiler option -Wall (it was between <compiler> and </compiler> something addOption="-Wall").

[attachment deleted by admin]

Offline Silverling

  • Multiple posting newcomer
  • *
  • Posts: 18
Re: DMD compiler problems... -Wall option?
« Reply #8 on: November 23, 2006, 02:53:30 am »
On the new project Dialog I choose the DMD compiler (and I also configure the compiler on the compilers&debuggers config box). Uppon starting a new project and attempting to compile,the -Wall option pops.

Oh well. Any clues of when will these DMD problems be fixed? The linker doesn't work either, as I said before.

Offline MortenMacFly

  • Administrator
  • Lives here!
  • *****
  • Posts: 9508
Re: DMD compiler problems... -Wall option?
« Reply #9 on: November 23, 2006, 08:42:36 am »
Ok - opening your original project file (renamed *.save to *.cbp) I found where the switch is placed - in the project's compiler #define section (see image attached).

Now I'm not sure how it got there because it usually should be under "Other options" but again: There is *never-ever* a need to modify the project file manually. Everything from the project file you can adjust somewhere.
So it seems as if I have to install a D compiler, right? I don't remember who did the "D" wizard but I still believe that in case of the "DMD" this option should not be automatically created... anyway - I'll try.
With regards, Morten.
Compiler logging: Settings->Compiler & Debugger->tab "Other"->Compiler logging="Full command line"
C::B Manual: http://www.codeblocks.org/docs/main_codeblocks_en.html
C::B FAQ: http://wiki.codeblocks.org/index.php?title=FAQ

Offline MortenMacFly

  • Administrator
  • Lives here!
  • *****
  • Posts: 9508
Re: DMD compiler problems... -Wall option?
« Reply #10 on: November 23, 2006, 09:20:22 am »
Ok - I'm through now and to sum up: It works!
Here the simple steps that I've done to attach the Digital Mars D compiler and using the wizard to create a hello world application without any trouble:
1.) D/L dmd.zip and dmc.zip and extracted them in a directory (just as suggested on the DMD homepage at http://www.digitalmars.com/d/dcompiler.html).
--> This created two sub-folders "dm" and "dmd"
2.) Setup the DMD compiler in C::B:
- set the base path to [DMD]\dmd
- add additional path [DMD]\dm\bin
- setup the compiler include path to [DMD]\dmd\src\dmd and [DMD]\dmd\src\phobos
- setup the linker include path to [DMD]\dmd\lib and [DMD]\dm\lib
- left everything else as it is.
3.) Started the D application wizard, selected "DMD" as compiler --> compiles and runs just fine... no illegal switches, nothing. What is your problem???
With regards, Morten.
Compiler logging: Settings->Compiler & Debugger->tab "Other"->Compiler logging="Full command line"
C::B Manual: http://www.codeblocks.org/docs/main_codeblocks_en.html
C::B FAQ: http://wiki.codeblocks.org/index.php?title=FAQ

Offline Silverling

  • Multiple posting newcomer
  • *
  • Posts: 18
Re: DMD compiler problems... -Wall option?
« Reply #11 on: November 23, 2006, 01:38:27 pm »
Yep, the option is there. I didn't find it because it wasn't under a Build Option specifically. However, I meddle overmuch with the compiler options and there is no "Reset" button :$:$:$ Sorry... I tried to uninstall B::C and delete the config records on the system registry, but my settings remained there... How do I reset all compiler settings?

By the way, I can now find the linker. The DMD package with the linker extracted all files to another folder called "DM" instead of "DMD", so the linker didn't get in place (at least where C::B searched). I corrected that already.

Offline MortenMacFly

  • Administrator
  • Lives here!
  • *****
  • Posts: 9508
Re: DMD compiler problems... -Wall option?
« Reply #12 on: November 23, 2006, 02:00:10 pm »
How do I reset all compiler settings?
If you are using the nightly build than there is no registry usage at all. In that case goto "Documents and settings\[your_user_id]\Application Data\codeblocks" and delete all *.conf files (in fact usually there is only one: default.conf unless you are using different layouts).

By the way, I can now find the linker. The DMD package with the linker extracted all files to another folder called "DM" instead of "DMD", so the linker didn't get in place (at least where C::B searched). I corrected that already.
BTW: It isn't C::B searching there bit the DMD compiler itself. So DMD is the one to blame for this issue. But actually this is described in detail how it works on their webpage and if the software is installed as proposed there is no such issue...

With regards, Morten.

Ps.: After that discussion what's actually left to clarify/fix...?! I'm a bit lost now... ;-)
Compiler logging: Settings->Compiler & Debugger->tab "Other"->Compiler logging="Full command line"
C::B Manual: http://www.codeblocks.org/docs/main_codeblocks_en.html
C::B FAQ: http://wiki.codeblocks.org/index.php?title=FAQ

Offline Biplab

  • Developer
  • Lives here!
  • *****
  • Posts: 1874
    • Biplab's Blog
Re: DMD compiler problems... -Wall option?
« Reply #13 on: November 23, 2006, 04:38:21 pm »
Hi,

This bug exists for Borland C++ Compiler 5.5 too. To reproduce the bug, click File -> New -> Project, select Console Application and later select Borland C++ 5.5 compiler. A default project with some code will be generated. Try building it, you'll get the following message.

Quote
:: === TestApp, Debug ===
:: Error E2075: Incorrect command line option: -Wall
:: === Build finished: 1 errors, 0 warnings ===

You won't get the option in Build Options dialog but the error will keep coming up. Now close the project and open the project file in Notepad++ or similar app, you'll see the following lines.
Code: [Select]
<Target title="Release">
<Option output=".\TestApp.exe" prefix_auto="1" extension_auto="1" />
<Option object_output="obj\Release\" />
<Option type="1" />
<Option compiler="bcc" />
<Compiler>
<Add option="-O2" />
</Compiler>
<Linker>
<Add option="-s" />
</Linker>
</Target>
</Build>
<Compiler>
<Add option="-Wall" />
</Compiler>
<Unit filename="main.cpp">
<Option compilerVar="CPP" />
<Option target="Debug" />
<Option target="Release" />
</Unit>

Remove the code in between
Code: XML
  1. <compiler></compiler>
and save the file. Now it will compile without any problem.

I am using Code::Blocks (svn build rev 3253 (2006-11-21 13:59:39) gcc 3.4.5 Windows/unicode)

Regards,

Biplab Kumar Modak
« Last Edit: November 23, 2006, 04:39:54 pm by biplab »
Be a part of the solution, not a part of the problem.

Offline killerbot

  • Administrator
  • Lives here!
  • *****
  • Posts: 5195
Re: DMD compiler problems... -Wall option?
« Reply #14 on: November 23, 2006, 05:18:09 pm »
the project wizard script should be checked, probably add this options in too many cases --> probably only valid for gnu ?