Install the DMD Compiler
1: Go to the DMD compiler download page.
2: Download the DMD D 1.0 compiler (dmd.1.030.zip) package.
3: Download the DMC Linker and Utilities (dmc.zip) package.
4: Unzip the to two packages into the c:\dmd folder location remembering to maintain the folder structure contained in the zip files.
5: Add the C:\dmd\bin\ folder to the PATH using the Windows Control Panel. More details on how to set the PATH can be found here.
NOTE: Step 5 is optional as this can also be done from within Zeus as will be shown later in this tutorial.
Create Some Code to Run Through the Compiler
1: Create the main.d file in this folder location:
Code: Select all
C:\d\main\main.d
Code: Select all
import std.stdio;
// our import libraries
import mathLIB.math1;
import mathLIB.math2;
int main(char[][] args)
{
real r1 = 0.95;
writefln("real r1 = %f", r1);
real r2 = __sqr(r1) * -1.0;
writefln("real r2 = %f", r2);
real r3 = __abs(r2);
writefln("real r3 = %f", r3);
real r4 = __acos(r1);
writefln("real r4 = %f", r4);
real r5 = __asin(r1);
writefln("real r5 = %f", r5);
real r6 = __atan(r1);
writefln("real r6 = %f", r6);
return 1;
}
Code: Select all
C:\d\mathLIB\math1.d
C:\d\mathLIB\math2.d
Code: Select all
module mathLIB.math1;
private import std.c.math;
real __abs(real x)
{
return fabs(x);
}
real __sqr(real n)
{
return n * n;
}
int __sign(real n)
{
return (n > 0 ? +1 : (n < 0 ? -1 : 0));
}
Code: Select all
module mathLIB.math2;
private import std.c.math;
real __acos(real x)
{
return std.c.math.acosl(x);
}
real __asin(real x)
{
return std.c.math.asinl(x);
}
real __atan(real x)
{
return std.c.math.atanl(x);
}
1: With Zeus running use the Workspace, New menu and in the resulting dialog fill in the following details:
- Workspace Name: My Example
- Workspace Directory: c:\d\
3: In the resulting dialog set the File Extensions to *.d and hit the Search button.
4: Hit the Save button and then hit the Close button.
5: Hit the Load button to load the newly created workspace into Zeus.
At this point Zeus will have create a Workspace with a project tree that matches the project tree described earlier and Zeus will have also created the class browsing and intellesensing information for these two projects.
For example, by clicking on the main.d file in the Main files section of the workspace, the file will be loaded into Zeus. Select the __atan function from the code and use the right mouse click, Tag Current Word popup menu to have Zeus load up the math2.d file at the location of the __atan function.
Configuring the Zeus Workspace to Work with the DMD Compiler
1: With the main.d file loaded and set as the active file, click on the compile toolbar button or use the Compile, Compile menu and the following error output window should be displayed:
Code: Select all
'dmd.exe' is not recognized as an internal or external command, operable program or batch file.
To configure the PATH into the workspace, use the Workspace, Options menu, select the General section and in the PATH entry field, add or append the C:\dmd\bin\; value.
IMPORTANT NOTE: Make sure the PATH is added to both projects in the workspace.
Now when the compile button is hit the following output will be produced:
Code: Select all
C:\d\main\main.d(12): Error: undefined identifier __sqr
C:\d\main\main.d(12): Error: function expected before (), not __sqr of type int
C:\d\main\main.d(14): Error: undefined identifier __abs
C:\d\main\main.d(14): Error: function expected before (), not __abs of type int
C:\d\main\main.d(16): Error: undefined identifier __acos
C:\d\main\main.d(16): Error: function expected before (), not __acos of type int
C:\d\main\main.d(18): Error: undefined identifier __asin
C:\d\main\main.d(18): Error: function expected before (), not __asin of type int
C:\d\main\main.d(20): Error: undefined identifier __atan
C:\d\main\main.d(20): Error: function expected before (), not __atan of type int
Code: Select all
dmd.exe -c -debug -v $fn
One way to fix this error would be to add all the files to the command line, but a much better approach would be to use a build manager to handle the building of the project.
So it's time to configure Zeus to use a build manager.
Related Topics:
Getting the D language debugger to work with Zeus.
Intergrating the D programming language help file.
Intergrating the D programming language Tango help file.
Writing Zeus macros using D scripting module.
Using the dfmt with Zeus
Using the Dscanner (D Language) inside Zeus
Using the DCD with Zeus