I downloaded HISE 2.1.0 and tried to build on Lubuntu 16.04 and it failed at linking stage. Here is the log:
Linking HISE Standalone - App
../../../../JUCE/modules/juce_core/zip/zlib/deflate.h:96:16: warning: type ‘struct internal_state’ violates one definition rule [-Wodr]
typedef struct internal_state {
^
../../../../JUCE/modules/juce_graphics/image_formats/../../juce_core/zip/zlib/zlib.h:1347:12: note: a different type is defined in another translation unit
struct internal_state {int dummy;}; /* hack for buggy compilers */
^
../../../../JUCE/modules/juce_core/zip/zlib/deflate.h:97:15: note: the first difference of corresponding definitions is field ‘strm’
z_streamp strm; /* pointer back to this zlib stream */
^
../../../../JUCE/modules/juce_graphics/image_formats/../../juce_core/zip/zlib/zlib.h:1347:32: note: a field with different name is defined in another translation unit
struct internal_state {int dummy;}; /* hack for buggy compilers */
^
../../../../JUCE/modules/juce_core/zip/zlib/zlib.h:83:16: warning: type ‘struct z_stream_s’ violates one definition rule [-Wodr]
typedef struct z_stream_s {
^
../../../../JUCE/modules/juce_graphics/image_formats/../../juce_core/zip/zlib/zlib.h:83:16: note: a different type is defined in another translation unit
typedef struct z_stream_s {
^
../../../../JUCE/modules/juce_core/zip/zlib/zlib.h:93:32: note: the first difference of corresponding definitions is field ‘state’
struct internal_state FAR *state; /* not visible by applications */
^
../../../../JUCE/modules/juce_graphics/image_formats/../../juce_core/zip/zlib/zlib.h:93:32: note: a field of same name but different type is defined in another translation unit
struct internal_state FAR *state; /* not visible by applications */
^
../../../../JUCE/modules/juce_core/zip/zlib/deflate.h:96:16: note: type ‘struct internal_state’ should match type ‘struct internal_state’ that itself violate one definition rule
typedef struct internal_state {
^
../../../../JUCE/modules/juce_graphics/image_formats/../../juce_core/zip/zlib/zlib.h:1347:12: note: the incompatible type is defined here
struct internal_state {int dummy;}; /* hack for buggy compilers */
^
In function ‘__poll_alias’,
inlined from ‘sleepUntilEvent.constprop’ at ../../../../JUCE/modules/juce_events/native/juce_linux_Messaging.cpp:130:78,
inlined from ‘runDispatchLoop’ at ../../../../JUCE/modules/juce_events/native/juce_linux_Messaging.cpp:244:42,
inlined from ‘main’ at ../../../../JUCE/modules/juce_events/messages/juce_ApplicationBase.cpp:265:57,
inlined from ‘main’ at ../../../../JUCE/modules/juce_events/messages/juce_ApplicationBase.cpp:243:42,
inlined from ‘main’ at ../../Source/Main.cpp:550:1:
/usr/include/x86_64-linux-gnu/bits/poll2.h:41:60: warning: call to ‘__poll_chk_warn’ declared with attribute warning: poll called with fds buffer too small file nfds entries
return __poll_chk (__fds, __nfds, __timeout, __bos (__fds));
^
In function ‘__read_alias’,
inlined from ‘readInternal.constprop’ at ../../../../JUCE/modules/juce_core/native/juce_posix_SharedCode.h:498:63,
inlined from ‘read’ at ../../../../JUCE/modules/juce_core/files/juce_FileInputStream.cpp:56:66,
inlined from ‘readCompressedInt.constprop’ at ../../../../JUCE/modules/juce_core/streams/juce_InputStream.cpp:106:14:
/usr/include/x86_64-linux-gnu/bits/unistd.h:39:58: warning: call to ‘__read_chk_warn’ declared with attribute warning: read called with bigger length than size of the destination buffer
return __read_chk (__fd, __buf, __nbytes, __bos0 (__buf));
^
In function ‘__read_alias’,
inlined from ‘readInternal.constprop’ at ../../../../JUCE/modules/juce_core/native/juce_posix_SharedCode.h:498:63,
inlined from ‘read’ at ../../../../JUCE/modules/juce_core/files/juce_FileInputStream.cpp:56:66,
inlined from ‘writeFromInputStream.constprop’ at ../../../../JUCE/modules/juce_core/streams/juce_OutputStream.cpp:261:94:
/usr/include/x86_64-linux-gnu/bits/unistd.h:39:58: warning: call to ‘__read_chk_warn’ declared with attribute warning: read called with bigger length than size of the destination buffer
return __read_chk (__fd, __buf, __nbytes, __bos0 (__buf));
^
/tmp/cchXJF3y.ltrans9.ltrans.o: In function `main':
<artificial>:(.text.startup+0xded): undefined reference to `gtk_init'
<artificial>:(.text.startup+0xdf2): undefined reference to `webkit_settings_new'
<artificial>:(.text.startup+0xe17): undefined reference to `gtk_plug_new'
<artificial>:(.text.startup+0xe23): undefined reference to `gtk_scrolled_window_new'
<artificial>:(.text.startup+0xe2e): undefined reference to `webkit_web_view_new_with_settings'
<artificial>:(.text.startup+0xe36): undefined reference to `webkit_web_view_get_type'
<artificial>:(.text.startup+0xe41): undefined reference to `g_type_check_instance_cast'
<artificial>:(.text.startup+0xe4b): undefined reference to `gtk_container_get_type'
<artificial>:(.text.startup+0xe59): undefined reference to `g_type_check_instance_cast'
<artificial>:(.text.startup+0xe64): undefined reference to `gtk_container_add'
<artificial>:(.text.startup+0xe6f): undefined reference to `g_type_check_instance_cast'
<artificial>:(.text.startup+0xe7a): undefined reference to `gtk_container_add'
<artificial>:(.text.startup+0xe89): undefined reference to `webkit_web_view_load_uri'
<artificial>:(.text.startup+0xea6): undefined reference to `g_signal_connect_data'
<artificial>:(.text.startup+0xec3): undefined reference to `g_signal_connect_data'
<artificial>:(.text.startup+0xee0): undefined reference to `g_signal_connect_data'
<artificial>:(.text.startup+0xee8): undefined reference to `gtk_widget_show_all'
<artificial>:(.text.startup+0xeed): undefined reference to `gtk_plug_get_type'
<artificial>:(.text.startup+0xef8): undefined reference to `g_type_check_instance_cast'
<artificial>:(.text.startup+0xf00): undefined reference to `gtk_plug_get_id'
<artificial>:(.text.startup+0xf45): undefined reference to `g_unix_fd_add'
<artificial>:(.text.startup+0xf53): undefined reference to `gtk_main'
/tmp/cchXJF3y.ltrans18.ltrans.o: In function `juce::GtkChildProcess::handleCommand(juce::String const&, juce::var const&)':
<artificial>:(.text+0x2899f): undefined reference to `webkit_policy_decision_use'
<artificial>:(.text+0x289db): undefined reference to `g_object_unref'
<artificial>:(.text+0x28a4a): undefined reference to `webkit_web_view_load_uri'
<artificial>:(.text+0x28a71): undefined reference to `gtk_main_quit'
<artificial>:(.text+0x28ae5): undefined reference to `webkit_web_view_go_forward'
<artificial>:(.text+0x28af5): undefined reference to `webkit_web_view_go_back'
<artificial>:(.text+0x28b15): undefined reference to `webkit_web_view_reload'
<artificial>:(.text+0x28b25): undefined reference to `webkit_web_view_stop_loading'
<artificial>:(.text+0x28b41): undefined reference to `webkit_policy_decision_ignore'
/tmp/cchXJF3y.ltrans18.ltrans.o: In function `juce::GtkChildProcess::loadChangedCallback(_WebKitWebView*, WebKitLoadEvent, void*)':
<artificial>:(.text+0x293bf): undefined reference to `webkit_web_view_get_uri'
/tmp/cchXJF3y.ltrans18.ltrans.o: In function `juce::GtkChildProcess::decidePolicyCallback(_WebKitWebView*, _WebKitPolicyDecision*, WebKitPolicyDecisionType, void*)':
<artificial>:(.text+0x29541): undefined reference to `webkit_response_policy_decision_get_type'
<artificial>:(.text+0x2954c): undefined reference to `g_type_check_instance_cast'
<artificial>:(.text+0x29559): undefined reference to `webkit_policy_decision_use'
<artificial>:(.text+0x29561): undefined reference to `webkit_navigation_policy_decision_get_type'
<artificial>:(.text+0x2956c): undefined reference to `g_type_check_instance_cast'
<artificial>:(.text+0x29577): undefined reference to `webkit_navigation_policy_decision_get_frame_name'
<artificial>:(.text+0x29582): undefined reference to `webkit_navigation_policy_decision_get_navigation_action'
<artificial>:(.text+0x295bf): undefined reference to `g_object_ref'
<artificial>:(.text+0x29612): undefined reference to `webkit_navigation_action_get_request'
<artificial>:(.text+0x2961a): undefined reference to `webkit_uri_request_get_uri'
<artificial>:(.text+0x29741): undefined reference to `webkit_navigation_policy_decision_get_type'
<artificial>:(.text+0x29751): undefined reference to `g_type_check_instance_cast'
<artificial>:(.text+0x2975c): undefined reference to `webkit_navigation_policy_decision_get_frame_name'
<artificial>:(.text+0x29767): undefined reference to `webkit_navigation_policy_decision_get_navigation_action'
<artificial>:(.text+0x297d1): undefined reference to `webkit_navigation_action_get_request'
<artificial>:(.text+0x297d9): undefined reference to `webkit_uri_request_get_uri'
<artificial>:(.text+0x2989c): undefined reference to `webkit_policy_decision_ignore'
collect2: error: ld returned 1 exit status
Makefile:133: recipe for target 'build/HISE Standalone' failed
make: *** [build/HISE Standalone] Error 1
It looks like libwebkit2gtk and libgtk are missing, but I have libwebkit2gtk-4.0 and libgtk-3-dev installed, don't understand why they're not regconized on linking. I got the same error on 18.04 and 20.04 too, if that's may help.