Derelict on Ubuntu with CODE::BLOCKS

Mike Parker aldacron at gmail.com
Mon Dec 11 07:34:47 UTC 2017


On Sunday, 10 December 2017 at 16:50:10 UTC, RegeleIONESCU wrote:
> Hello!
>
> Please help me install and use Derelict on Ubuntu 16.04!
>
> I saw this tutorial https://www.youtube.com/watch?v=exQ43PFWJBU 
> and I wanted to do it in D but I got lost, totally lost. First 
> step is to import OpenGL via Derelict.
>
> I am using Code::Blocks 16.01 with DMD.

My advice is to ditch Code::Blocks and use something like VS Code 
or Sublime Text in conjunction with DUB. It's by far the easiest 
way to get started with D, particularly for someone who as little 
practical experience with compilers and linkers. Then you don't 
have to worry about "installing" Derelict. You can get the Ubuntu 
packages for the C libraries you need via apt-get on Ubuntu, then 
use DUB to manage and build your project. Piece of cake compared 
to doing it all by hand.

That said...

>I downloaded all the
> archives from https://github.com/DerelictOrg.

What do you mean by "all"? You'll need DerelictUtil at minimum, 
as all the Derelict packages depend on it. Other than that, you 
only need the package that providing bindings to the C libraries 
you actually want to use -- DerelictGL3 to gain access to OpenGL 
for starters. Then, if you're using library like SDL or GLFW to 
create your OpenGL window, you'll want DerelictSDL2 or 
DerelictGLFW3 (not both).

> I tried to copy the folders into /usr/included/dmd, I tried and 
> copied them to the lib folder, then I tried something with DUB 
> - which says it needs a dub.sdl file although the file was 
> right there beside it, in the same folder I run DUB from. I 
> even tried to setup some paths in CB in project build 
> options/debug/linker&search settings.

For future reference, when asking for help like this, you'll need 
to be more specific about what you did and what errors you saw. 
This is too vague to be useful to anyone willing to help you.


> I searched for tutorials but couldn't find one on how to 
> install Derelict on Ubuntu.

The documentation link Jordan gave you should suffice. But again, 
I strongly recommend you use DUB to build and manage your 
project. In that case:

https://derelictorg.github.io/building/with-dub/

> To make things even worse, I discovered that one needs not only 
> to install Derelict but after that needs to install other 
> libraries too that do not come with Derelict.

All the Derelict packages com with everything you need to use the 
Derelict packages. It's up to you to get the C libraries you 
want. Some come precompiled, some can be installed via your 
system package manager, some require you to build yourself. 
You'll need to visit the homepage of the C libraries you want to 
install use or, alternatively, do a search for how to install 
them on your system. On Ubuntu, most of what you want is 
available through apt-get. Just be careful about using the proper 
version of the Derelict bindings for each library version you use.

>
> Please tell me step by step how to make Derelict work with my 
> Code::Blocks. I would like to make it system wide available, so 
> that it is available for any project I make in CB.

Asking for a step-by-step tutorial in the forums is a bit much. 
All of the information you need is already out there. The CB site 
and documentation will show you how to configure paths in CB. 
There are numerous tutorials around that explain the concepts of 
compiling and linking. The Derelict documentation shows you how 
to compile and use the Derelict packages both with and without 
DUB.

You don't need to "install" the Derelict packages system wide on 
a single-user system. Keeping them in your home directory is 
fine. Just tell the compiler how to find them once they're 
compiled and you're building your project.

Let's assume you're using SDL to get your OpenGL window. Then 
you'll need to follow the instructions at the link Jordan gave 
you to fetch and build DerelictUtil, DerelictSDL2, and 
DerelictGL3. Once that's done, for simplicity's sake, create a 
new directory tree. Let's say something like this in your home 
directory:

- dev
-- D
--- import
--- lib

Copy the Derelict source tree from each Derelict package you 
built (everything under the source directory in each package, 
including the directories) into the import directory so that you 
have this tree:

- import
-- derelict
--- gl3
--- sdl2
--- util

Copy the libraries you compiled into the lib directory, so that 
you have this:

- lib
-- libDerelictGL3.a
-- libDerelictSDL2.a
-- libDerelictUtil.a

Once that's done, configure your CB project so that the DMD 
import path is ~/dev/D/import and the library import path is 
~/dev/D/lib. Then add the three libraries to the link list in 
your project settings. I haven't looked at CB in years so I have 
no idea what the specifics are, but all IDEs are similar in this 
regard.

But again, I highly recommend you forget about CB for D 
development while you're learning and use a text editor + DUB 
instead. VS Code is great for this because it has a built-in 
terminal. You can skip most of the above (you'll still need to 
obtain the C libraries), create a DUB package recipe, start 
writing your D code, then hit the Ctrl-~ to pull up the terminal 
in your project directory and type 'dub'. DUB will make sure your 
D dependencies are downloaded and compiled, then compile and link 
your executable.


More information about the Digitalmars-d-learn mailing list