Error when compiling Prolog in SICStus using SPIDER IDE - sicstus-prolog

I have just installed SICStus Prolog and the SPIDER IDE plugin for Eclipse.
SPIDER was installed using the Update Site, and I set the SICStus installation path in the preferences and verified it.
Then I created a new workspace and a Prolog Project that contains only the following file test.pl:
test :- write('Hello World!'), nl.
When I compile (menu: SICStus > Compile Prolog Code), I get the following message in the "Toplevel" window:
Restarting Prolog
Unknown option '--spider'.
Usage: /Users/alexraasch/sicstus/bin/sicstus [options] [-- args ...]
Options:
-f Fast start. Do not read initialization files.
-i Force interactive mode.
-m Use maximally compatible memory manager bottom layer.
-r <file> Restore <file> after booting.
-l <file> Ensure that <file> (containing Prolog code)
is loaded on startup.
--goal <goal> Execute <goal> after loading any files.
-Xrs Reduced use of OS-signals (see release notes)
--help Show this message and exit.
-- ... Pass the rest of the arguments as prolog_flag(argv,X).
-a ... Legacy name for --.
Report bugs using http://www.sics.se/sicstus/bugreport/bugreport.html
Process ended with exit value 1
My version numbers are:
macOS 10.12.5
Java SE 1.8.0_65
Eclipse 4.6.0
SICStus 4.0.8
SPIDER 0.0.64
The SICStus installation was a pre-built installation.
I have never worked with SICStus, so any help would be appreciated.

That version of SICStus Prolog is too old to work with SPIDER.
You can download an evaluation version of the latest SICStus Prolog from the SICStus Prolog site. You can install it without uninstalling any version you already have.

Related

How do I install crystal-lang on rapsberry pi?

When I try to add it to sources as per debian install instructions I get this error. I'm guessing this means that there are no arm packages for it.
Failed to fetch https://dist.crystal-lang.org/apt/dists/crystal/InRelease Unable to find expected entry 'main/binary-armhf/Packages' in Release file (Wrong sources.list entry or malformed file)
I'm guessing I probably need to install it from source. How would I go about doing that with an arm cpu? When I check it out and run make I get the error:
You need to have a crystal executable in your path! Makefile:113:
recipe for target '.build/crystal' failed make: *** [.build/crystal]
Error 1
Any suggestions would be greatly appreciated.
EDIT: There's now a semi-official repository for crystal on raspbian, check it out here: http://public.portalier.com/raspbian
Crystal doesn't build Debian packages for ARM, and you're correct in that you'll need to build from source.
However, the Crystal compiler is written in Crystal. This presents the obvious problem of how to get a compiler to build the compiler. The answer is cross-compilation: building an arm binary on a x86 desktop computer and copying it across.
Here's a quick step-by-step based on my memory of last time I cross-compiled:
Install Crystal on a x86 desktop PC, and check it works.
Install all required libraries on the desktop and Raspberry Pi. You'll need the same LLVM version on the Raspberry Pi and desktop. This is probably the hardest and longest step. You can install llvm 3.9 from debian testing for ARM, see this stackoverflow post for how to install only LLVM from debian testing.
Check out the sources from git on both computers, and run make deps.
Cross-compile the compiler by running this command in the root of the git repository:
./bin/crystal build src/compiler/crystal.cr --cross-compile --target arm-unknown-linux-gnueabihf --release -s -D without_openssl -D without_zlib
This command will create a crystal.o file in your current directory, and also output a linker command (cc crystal.o -o crystal ...).
Copy crystal.o to the raspberry pi, and run the linker command. Be sure to edit the absolute path to llvm_ext.o so that it points to the Crystal checkout on your Raspberry Pi, not the checkout on your desktop. Also make sure that all references to llvm-config in the command are for the correct LLVM version. For example, changing /usr/local/bin/llvm-config to llvm-config-3.9 on Raspbian.
Run the crystal executable in your current directory (./crystal -v) and make sure it works.
Ensure to set CRYSTAL_PATH environment variable is set to lib:/path/to/crystal/source/checkout/src so that the compiler can find the standard library when compiling applications.

Eclipse C/C++ project on Bash on Ubuntu on Windows

I've installed Eclipse Neon (v4.6). Also, I have "Bash on Ubuntu on Windows" (Sept '16). I installed gcc and gdb for compiling and debugging in C. I tested them on terminal and they're running.
I'm trying to use Eclipse to create a new C project but in the compiler selection stage it doesnt give me the option to use the "Bash on Ubuntu on Windows" compiler.
Is there any way to solve my problem?
Because Bash/WSL is pretty new and the ability to correctly invoke Linux commands from outside Bash (using bash.exe -c ...) is not well understood by many dev tools (yet), you may have to do some work to define custom tasks/actions to call the necessary bash.exe -c "gcc ..." commands that you want to invoke.
However, you should absolutely be able to write/configure a makefile (or, perhaps even better, a CMake file) which can switch paths to lib/include/tools/etc. based on environment and then build smoothly on Windows or in Linux.
This very scenario has sparked an idea for a cool blog post that I'll work on and publish to our blog https://blogs.msdn.microsoft.com/commandline in the next week or two :)
HTH.
I think the best way to use the wsl for programming in C/C++ is like Microsoft does it. Visual Studio use ssh to connect to linux environment for "C++ for Linux Development".
So, in our case we can set up openssh server on wsl, connect to localhost from your IDE and start remote project.
Eclipse and NetBeans supports remote projects.
Clions I think not.
Here are Microsoft's instruction on how to configure Visual Studio
and wsl:
https://blogs.msdn.microsoft.com/vcblog/2017/02/08/targeting-windows-subsystem-for-linux-from-visual-studio/
May 2017
We use Eclipse and a makefile project. I configured Eclipse by adding an "external builder" - and use the following script:
-c "cd `echo '${project_loc}' | sed -e 's/C:/\/mnt\/c/g' -e 's/\\\\/\//g'` && make -f path_to_makefile/makefile
The "cd" and sed trick is to convert from Eclipse "C:\" to Windows Subsystem for Linux "/mnt/c/" and replace "\" with "/"
Make now executes in the project location as defined by ${project_loc}
I still have not figured out how to execute gdb on Linux. But at least compile+link (and execute unit tests as defined in my makefile) is now leveraging the full speed of the native Ubuntu toolchain...
I have some better way...
You can add new user terminal and give "Ubuntu.exe" location in eclipse under Local terminal setup as shown in screen shot.
in my case directory is ...
C:\Users\MyuserName\AppData\Local\Microsoft\WindowsApps\CanonicalGroupLimited.Ubuntu16.04onWindows_79rhkp1fndgsc
if eclipse not able to select ubuntu16.4.exe, then write manually in path.
as shown in image.
Now just click on Apply and close. Open terminal (Ctrl+Alt+Shift+T) and select Ubuntu terminal.
Now, Navigate to source directory through terminal and compile you project. Enjoy...
Initially I followed espenalb's advice, but it didn't parse my build output correctly: double-clicking on lines didn't open the file, nor go to the line with the error.
I ended up changing the built-in CDT builder (instead of adding an external builder). I changed the build command to be the following (alex is my username):
bash.exe -c make 2>&1 | sed -e 's/\\/home\\/alex/C:\\\\Users\\\\alex/g' -e 's/\\//\\\\/g'
This way, the make output is converted from paths with "/home/alex" to the same path under "c:\users\alex". This fixes the parsing issue.
I also had an issue with eclipse replacing the build output with "Build not configured correctly" - I fixed it by disabling the "Scanner Configuration Builder" in the "Builders" submenu of the project properties (it's a C Makefile project). Also, need to remove targets "all" and "clean" from default build command.
Yet another variation. I managed to build with the external builder command set to
bash.exe -c "cd '${project_loc}' && cd directory_where_the_Makefile_is && make -j8"

Installing GTK+ on MAC OS X El Capitan went wrong

I am still new to C programming, but I think that I can handle all major parts of it as pointers, functions, arrays... . Now I am looking forward for GUI programming. I want something that can handle crossplatform. So I decided to go for GTK+. I found this on their website:
First, make sure that your system meets the requirements as mentioned above, then download and run the installation script (gtk-osx-build-setup.sh). If your application already has a module, everything you need to build your application is handled by jhbuild. The build page has detailed instructions.
So my system meets the requirements. I have downloaded the file.I opened up my terminal and wrote:
sh gtk-osx-build-setup.sh
My terminal returned:
Checking out jhbuild (7c8d34736c3804) from git...
Switched to branch 'master'
Your branch is up-to-date with 'origin/master'.
Deleted branch stable (was 7c8d347).
Already up-to-date.
Switched to a new branch 'stable'
Installing jhbuild...
-n WARNING: aclocal not available (usually part of package 'autoconf')
-n WARNING: automake not available (usually part of package 'automake')
-n WARNING: autopoint not available (usually part of package 'gettext')
-n WARNING: pkg-config not available (usually part of package 'pkgconfig')
-n WARNING: yelp-tools not available (usually part of package 'yelp-tools')
-n Configuring jhbuild without autotools
-n Now type `make' to compile jhbuild
Installing jhbuild configuration...
Installing gtk-osx moduleset files...
PATH does not contain /Users/myname/.local/bin, it is recommended that you add that.
Done.
What should I do know guys? Please help!
I was also trying to do all in one bundle... So i went to the directory wich i downloaded. And than run make install. I should type something more than make install or it is everything?

Windows: How to build X264.lib instead of .dll

I downloaded the X264 source and installed mingw.
Step 1:
Executed this in the MINGW bash:
./configure --disable-cli --enable-shared --enable-win32thread -
-extra-ldflags=-Wl,--output-def=libx264.def
and then 'make'
Step 2:
Renamed the libx264-142.dll to libx264.dll and Opened up VS2012 Command Prompt and executed this:
LIB /DEF:libx264.def
which gave me libx264.lib and object libx264.exp
Step 3:
Included the lib file in a VS2012 project which uses the X264 API.
Problem:
When I start the project I get the following error message:
"The program can't start because libx264.dll is missing from your computer"
Question:
Why is it looking for the dll when I'm linking the static library in?
How do I resolve this? I would like to build a static X264 library which I can link in with my project.
EDIT:
I just had to put the dll in the same directory as the project executable.
However - My question still stands: How do I build a static x264 library? So I don't need the dll?
After the latest update of x264 you can build static library usable by MSVS project. For such library compilation you will need:
MSYS and MSVS 2013 Update 2 (express version [for Windows Desktop] would also work if you install Update 2)
run "VS2013 x86 Native Tools Command Prompt" or "VS2013 x64 Native Tools Command Prompt" depending what version (32 or 64-bit) you want to build
change dir to x264 path and run MSYS shell (sh)
from shell run "CC=cl ./configure --disable-cli --enable-static" for x264 configuring
run "make" which should build libx264.lib usable from MSVS
P.S. MSVS builds would be a little bit slower than one build by MinGW
Matthew Oliver has a GIT repository of a patched x264 source tree (https://github.com/ShiftMediaProject/x264) that compiles natively in VS2013 update 2 and later. It requires installing a YASM version for VS.
It worked pretty much straight out of the box for me, though I did have to change the VSYASM parameter "-f Win32" to "-f win32" for a 32bit build
Take a look here: http://siliconandlithium.blogspot.no/2014/03/building-x264-on-windows-with-visual.html
Static lib is not possible in windows as per my knowledge.

How do I compile a .c file on my Mac?

How do I compile a .c file on my Mac?
You'll need to get a compiler. The easiest way is probably to install XCode development environment from the CDs/DVDs you got with your Mac, which will give you gcc.
Then you should be able compile it like
gcc -o mybinaryfile mysourcefile.c
You will need to install the Apple Developer Tools. Once you have done that, the easiest thing is to either use the Xcode IDE or use gcc, or nowadays better cc (the clang LLVM compiler), from the command line.
According to Apple's site, the latest version of Xcode (3.2.1) only runs on Snow Leopard (10.6) so if you have an earlier version of OS X you will need to use an older version of Xcode. Your Mac should have come with a Developer Tools DVD which will contain a version that should run on your system. Also, the Apple Developer Tools site still has older versions available for download. Xcode 3.1.4 should run on Leopard (10.5).
In 2017, this will do it:
cc myfile.c
Just for the record in modern times,
for 2017 !
1 - Just have updated Xcode on your machine as you normally do
2 - Open terminal and
$ xcode-select --install
it will perform a short install of a minute or two.
3 - Launch Xcode. "New" "Project" ... you have to choose "Command line tool"
Note - confusingly this is under the "macOS" tab.
Select "C" language on the next screen...
4- You'll be asked to save the project somewhere on your desktop. The name you give the project here is just the name of the folder that will hold the project. It does not have any importance in the actual software.
5 - You're golden! You can now enjoy c with Mac and Xcode.
You can use gcc, in Terminal, by doing gcc -c tat.c -o tst
however, it doesn't come installed by default. You have to install the XCode package from tour install disc or download from http://developer.apple.com
Here is where to download past developer tools from, which includes XCode 3.1, 3.0, 2.5 ...
http://connect.apple.com/cgi-bin/WebObjects/MemberSite.woa/wo/5.1.17.2.1.3.3.1.0.1.1.0.3.3.3.3.1
Ondrasej is the "most right" here, IMO.
There are also gui-er ways to do it, without resorting to Xcode. I like TryC.
Mac OS X includes Developer Tools, a developing environment for making
Macintosh applications. However, if someone wants to study programming
using C, Xcode is too big and too complicated for beginners, to write
a small sample program. TryC is very suitable for beginners.
You don't need to launch a huge Xcode application, or type unfamiliar
commands in Terminal. Using TryC, you can write, compile and run a C,
C++ and Ruby program just like TextEdit. It's only available to
compile one source code file but it's enough for trying sample
programs.
Use the gcc compiler. This assumes that you have the developer tools installed.
STEP 1
Just check wheater your MacBook has the compiler or not using this command 👉🏻 clang --version in your command line interface. If the tool exists then you will be able to see the version like this
STEP 2
Next, go to the directory where your source code exists using CMD Interface, then run the command make "filename" without the .c extension.
STEP 3
The final command to run your source code after compiling it is ./filename without the .c extension.
This is how you can compile and run your program on the Macintosh system.

Resources