[NTLK] Need help with compiling and running WatsonEnabler under Linux

David Arnold davida at pobox.com
Sun Feb 20 17:32:22 PST 2022

> On 21 Feb 2022, at 09:22, NewtonTalk <newtontalk at pda-soft.de> wrote:
> Hi experts,
> I've been trying to get WatsonEnabler running on a VirtualBox Ubuntu VM.
> I'll spare you the gruesome details of little Frank trying to find his way
> through the confusing maze called Linux for the first time in his life.
> Suffice it to say that it so far cost three nights, is far from finished,
> and as to WatsonEnabler has been a miserable failure. Hopefully, some of the
> experts on this list will be able to help me…

Perhaps the details might be better off list, but …

> 1) I have installed a brand spanking new Ubuntu Virtual Machine using
> VirtualBox on a Windows 10 machine.

That’s a good choice.  It mostly won’t matter, but which version?  20.04?  21.10?

> 2) I've downloaded the following zip file from GitHub:
>     <https://github.com/pguyot/DCL/archive/refs/heads/master.zip>
> Unzipping this file ended up in a folder DCL-master.
> 2) The way I understand things, this folder must be compiled before it can
> be of any use to me. At this point I'd like to point out that I neither have
> Visual Studio installed on this virtual machine nor, to the best of my
> knowledge, any other C++ compiler, unless such a C++ compiler is part of an
> standard Ubuntu distribution.

It’s not installed by default.

There are two popular choices: clang or g++.  Both are good, and either should work.  I’d default to g++, basically because I grew up with it :-)

Install with either:

   apt install g++


   apt install clang

Whichever one you choose, you’ll see that it pulls in a bunch of mandatory dependencies.  You can safely say “yes” to that when asked.  Don’t worry about the “Suggested packages” for now — you can make a note of them if you like, but they’re not strictly necessary.

> 3) According to Paul's readme file this, compilation is done as follows:
>     mkdir build
>     cd build
>     cmake .. -DCMAKE_BUILD_TYPE=Debug
>     cmake --build .
>     ctest . -C Debug
> This is where I get unsure for the first time. Where, relative to the
> DCL-master folder, must the build directory be located? Inside this folder?
> Elsewhere? Does this matter at all?

In these instructions, the ‘build’ directory should be a child of DCL-master.   This is the ‘..’ in the third line.  You can put it elsewhere, but … this is standard.

You’ll need to install cmake too:

    apt install cmake

‘ctest’ is installed as part of cmake.

> 4) Based on an assumption I created the directory inside the DCL-master
> folder and changed into it.
> 5) Typing
>     "cmake .. -DCMAKE_BUILD_TYPE=Debug"
> provided me with the information that cmake was not found. It seems it isn't
> part of a standard Linux distribution. This problem was fixed by proceeding
> as the Ubuntu terminal kindly suggested, namely by entering
>     sudo apt install cmake     
> This installation seems to have worked, since now I'm getting usage hints
> when typing "cmake”.


> 5) Typing
>     "cmake .. -DCMAKE_BUILD_TYPE=Debug"
> again, I'm now getting the following:
> -------------------------------------------------
> gruendef at gruendef-VirtualBox:~/Desktop/Hoffentlich/DCL-master/build$ cmake
> -- The CXX compiler identification is unknown
> CMake Error at CMakeLists.txt:2 (project):
>  No CMAKE_CXX_COMPILER could be found.
>  Tell CMake where to find the compiler by setting either the environment
>  variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full
> path
>  to the compiler, or to the compiler name if it is in the PATH.
> -- Configuring incomplete, errors occurred!
> See also
> "/home/gruendef/Desktop/Hoffentlich/DCL-master/build/CMakeFiles/CMakeOutput.
> log".
> See also
> "/home/gruendef/Desktop/Hoffentlich/DCL-master/build/CMakeFiles/CMakeError.l
> og".
> gruendef at gruendef-VirtualBox:~/Desktop/Hoffentlich/DCL-master/build$ 
> ————————————————————————

With g++ installed, Paul’s instructions above appeared to work fine for me.
A few warnings here and there, but the tests passed, and I have a libDCL.so in the build directory …

> I swear by everything I hold sacred that I've tried to find the solution on
> my own. It seems that this problem isn't all that uncommon, but as a Linux
> newbie the explanations and suggestions are all Greek to me.
> What can I do? And, if the miracle happens and I can make this compile
> within my statistically remaining lifetime, which unfortunately isn't all
> that long: How would I continue in order to make a Newton package usable on
> a Watson?

See above re installing a C++ (aka CXX) compiler.

Please feel free to ping me directly if anything there or elsewhere is unclear.



More information about the NewtonTalk mailing list