gnunn1 / tilix

A tiling terminal emulator for Linux using GTK+ 3
https://gnunn1.github.io/tilix-web
Mozilla Public License 2.0
5.42k stars 292 forks source link

/usr/bin/ld: cannot find -lX11 #1754

Open BramBorg opened 5 years ago

BramBorg commented 5 years ago

Running on up to date ubuntu 19.04. Installed DMD. trying to build...

dub build --build=release
Performing "release" build using dmd for x86_64.
gtk-d:gtkd 3.9.0: target for configuration "library" is up to date.
gtk-d:vte 3.9.0: target for configuration "library" is up to date.
tilix ~master: building configuration "default"...
source/gx/gtk/util.d(155,5): Deprecation: foreach: loop index implicitly converted from size_t to int
source/gx/tilix/appwindow.d(1643,9): Deprecation: foreach: loop index implicitly converted from size_t to int
source/gx/tilix/colorschemes.d(213,67): Deprecation: alias `std.json.JSON_TYPE` is deprecated - Use JSONType
source/gx/tilix/colorschemes.d(213,67): Deprecation: enum member `std.json.JSONType.TRUE` is deprecated - Use .true_
source/gx/tilix/colorschemes.d(221,77): Deprecation: alias `std.json.JSON_TYPE` is deprecated - Use JSONType
source/gx/tilix/colorschemes.d(221,77): Deprecation: enum member `std.json.JSONType.TRUE` is deprecated - Use .true_
source/gx/tilix/colorschemes.d(224,71): Deprecation: alias `std.json.JSON_TYPE` is deprecated - Use JSONType
source/gx/tilix/colorschemes.d(224,71): Deprecation: enum member `std.json.JSONType.TRUE` is deprecated - Use .true_
source/gx/tilix/colorschemes.d(227,69): Deprecation: alias `std.json.JSON_TYPE` is deprecated - Use JSONType
source/gx/tilix/colorschemes.d(227,69): Deprecation: enum member `std.json.JSONType.TRUE` is deprecated - Use .true_
source/gx/tilix/colorschemes.d(230,67): Deprecation: alias `std.json.JSON_TYPE` is deprecated - Use JSONType
source/gx/tilix/colorschemes.d(230,67): Deprecation: enum member `std.json.JSONType.TRUE` is deprecated - Use .true_
source/gx/tilix/session.d(915,70): Deprecation: alias `std.json.JSON_TYPE` is deprecated - Use JSONType
source/gx/tilix/session.d(915,70): Deprecation: enum member `std.json.JSONType.TRUE` is deprecated - Use .true_
source/gx/tilix/session.d(937,30): Deprecation: alias `std.json.JSON_TYPE` is deprecated - Use JSONType
source/gx/tilix/session.d(937,30): Deprecation: enum member `std.json.JSONType.FLOAT` is deprecated - Use .float_
source/gx/tilix/session.d(961,72): Deprecation: alias `std.json.JSON_TYPE` is deprecated - Use JSONType
source/gx/tilix/session.d(961,72): Deprecation: enum member `std.json.JSONType.TRUE` is deprecated - Use .true_
source/gx/tilix/terminal/regex.d(242,24): Deprecation: initialization of immutable variable from static this is deprecated.
source/gx/tilix/terminal/regex.d(242,24):        Use shared static this instead.
source/gx/tilix/terminal/regex.d(248,24): Deprecation: initialization of immutable variable from static this is deprecated.
source/gx/tilix/terminal/regex.d(248,24):        Use shared static this instead.
source/gx/tilix/terminal/terminal.d(2909,9): Deprecation: foreach: loop index implicitly converted from size_t to uint
source/gx/tilix/terminal/terminal.d(4104,62): Deprecation: alias `std.json.JSON_TYPE` is deprecated - Use JSONType
source/gx/tilix/terminal/terminal.d(4104,62): Deprecation: enum member `std.json.JSONType.FALSE` is deprecated - Use .false_
source/gx/tilix/terminal/terminal.d(4109,81): Deprecation: alias `std.json.JSON_TYPE` is deprecated - Use JSONType
source/gx/tilix/terminal/terminal.d(4109,81): Deprecation: enum member `std.json.JSONType.TRUE` is deprecated - Use .true_
Linking...
/usr/bin/ld: cannot find -lX11
collect2: error: ld returned 1 exit status
Error: linker exited with status 1
dmd failed with exit code 1.

Kicks me out with the error: Linking... /usr/bin/ld: cannot find -lX11 collect2: error: ld returned 1 exit status Error: linker exited with status 1 dmd failed with exit code 1.

I installed DMD again, latest version I could find on their site. When I try to install the other dependencies, things start to get out of control. Apparently, each package needed has its own dependencies which need to be build too?

I just want my trusted tilix back... :-( without having to crap all over my fresh install. Worst of all, even when I said: okay, f it... let's do this and get all that dirt in.... I can't even get it running.

Any help would be greatly appreciated...

egmontkob commented 5 years ago

You need to install libx11-dev. Generally, for "ld: cannot find -lfoobar" you need to locate a package that ships "libfoobar.so" (without any subsequent version number, e.g. not "libfoobar.so.6"). Go to https://packages.ubuntu.com/ -> "Search the contents of packages" to find the required package, its name is probably "libfoobar-dev" or something similar (a bit of common sense / guesswork might be necessary).

PS. At least you can fire up dub. For me it didn't work in 19.04 due to https://bugs.launchpad.net/ubuntu/+source/dub/+bug/1828466. I'm on 19.10 beta now, and I'm running into other kinds of issues (multiple definition of symbols) while compiling. I guess I should file another bug for them. :)

I just want my trusted tilix back... :-(

Do you need to compile it yourself, though? Ubuntu 19.04 ships a tilix-1.8.9 package.

BramBorg commented 5 years ago

Hey! Thanks for your reply! :-) I will try to find that package. I am an entire n00b still, so I really need some help with some things. I have Kali with KDE on another system and that is going great, however, ubuntu looks and feels so much more like... coming home, so...

There indeed is a Tilix package included but it is old and has an issue with transparency on my system. I found it odd that I needed to compile it, too... but I guess the dev didn't bother to put up new pre-compiled versions orso.

Anyway, that seems like quite the bug to run into... if a compiler doesn't work on an entire platform.

BramBorg commented 5 years ago

I guess I found the easy way...

http://www.webupd8.org/2016/03/terminix-promising-new-tiling-terminal.html

egmontkob commented 5 years ago

There indeed is a Tilix package included but it is old

It's a version released early this year. I don't think that counts old. Also I'm not sure if your transparency issue, whatever that is, is fixed with newer versions; maybe.

if a compiler doesn't work on an entire platform.

There's nothing wrong with your compiler, it works fine. It's just that additional files are needed to compile this particular project.

(Disclaimer: I'm a semi-random dude commenting here, not Tilix's developer.)

BramBorg commented 5 years ago

Hmm... the one I had on my system was a couple of versions older than the one I have now. But, helas, the transparency issue indeed is not fixed. Must be a GNOME thing or a graphics driver thing then, I guess. On KDE this version of tilix does not have that problem. However, that is on another system with intel integrated graphics. On this laptop I am on now, I can choose whether to run it via the onboard intel GFX or the external AMD GFX. Both have the same issue: the moment the window is not in focus, the transparency is gone. Doesn't matter which gfx chip i run it on. So must be a gnome thing.

The compiler not working, that I was talking about, was in regards to the issue you described with the symbols. I guess that's the same thing as the symbol files on windows? The ones you have to get from the web when analyzing a BSOD dumpfile?