Ubuntu – Can’t run “shared library” in nautilus

64-bitexecutablemime-typenautilusshared library

I recently re-installed Ubuntu in 64 bit, (before I had it in 32 bit). I had the home folder on a partition and the system on another. So when I re-installed I kept my old home folder.

My problem is that now, my c++ executables that use the SDL are recognize as "shared library", and so I can't directly run them from nautilus.
I searched for a solution, and found that it was caused by a bug of mime-type (see https://bugs.launchpad.net/ubuntu/+source/gcc-defaults/+bug/1639531), which consider each file marked as "position independent executable" (by gcc) as a "shared library".

As It seems that there's no way to make mime-type recognize it normally, I would like to be able to launch "shared libraries" files in nautilus (as they are runnable from a terminal).
I tried to set the default program for this kind of file to an application called "Run Software" but when I try to launch it, nothing happens.

What is the right way to make nautilus to run a certain type of file and not to associate it with an application ?

Best Answer

I have the same problem. When I click on compiled executable in Nautilus (Files 3.20.4), I got the message:

there is no application installed for "shared libraries" files"

There are two workarounds.

  1. Just create a one line script in the same directory:

    ./my_program
    

    and set Allow executing file as program in Nautilus. (Or add +x via chmod.)

  2. Open this directory in Terminal and run there. (or drag and drop the file from Nautilus to Terminal)