Skip to content

Wont find libclang automatically on Debian Testing #770

@nolange

Description

@nolange

System info:

  • Sublime Text version: 14 Build 4143
  • Which system are you on: `Debian Linux Testing/Bookworm x86_64
  • Clang version: 15.0.6

What happens:

The plugin is unable to find the libclang library, unless I provide the full path with

  "libclang_path": "/usr/lib/x86_64-linux-gnu/libclang-$clang_version.so.1"

The library is available under the following paths:

/usr/lib/x86_64-linux-gnu/libclang-15.so.1
/usr/lib/x86_64-linux-gnu/libclang-15.so.15
/usr/lib/x86_64-linux-gnu/libclang-15.so.15.0.6

Output from clang --version

Debian clang version 15.0.6
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin

PS. I commented out the line in the settings shipped with the plugin,
doesnt make a difference for me, but it seems odd to have this as default:

  "libclang_path": "<some_path_here>", 
Log that illustrates the issue:
startup, version: 4143 linux x64 channel: stable
executable: /opt/sublime_text/sublime_text
application: /opt/sublime_text
working dir: /home/noppl
packages path: /home/noppl/.config/sublime-text/Packages
state path: /home/noppl/.config/sublime-text/Local
zip path: /opt/sublime_text/Packages
zip path: /home/noppl/.config/sublime-text/Installed Packages
ignored_packages: ["Vintage"]
pre session restore time: 0.391272
loading dictionary Packages/Language - English/en_US.dic
startup time: 0.581365
git: located Sublime Merge installed at /opt/sublime_merge
git: using configuration from system git install
git: tracking working dir /home/noppl/git/buildroot-external
first paint time: 0.621976
reloading python 3.3 plugin 0_package_control_loader.00-package_control
reloading python 3.3 plugin 0_package_control_loader.01-pygments
reloading python 3.3 plugin 0_package_control_loader.50-markupsafe
reloading python 3.3 plugin 0_package_control_loader.50-pymdownx
reloading python 3.3 plugin 0_package_control_loader.50-python-markdown
reloading python 3.3 plugin 0_package_control_loader.50-pyyaml
reloading python 3.3 plugin 0_package_control_loader.51-python-jinja2
reloading python 3.3 plugin 0_package_control_loader.55-mdpopups
reloading python 3.3 plugin Clang Format.clang_format
reloading python 3.3 plugin Indent XML.indentxml
reloading python 3.3 plugin Indent XML.setup
reloading python 3.3 plugin Package Control.1_reloader
reloading python 3.3 plugin Package Control.2_bootstrap
reloading plugin Default.arithmetic
reloading plugin Default.auto_indent_tag
reloading plugin Default.block
reloading plugin Default.colors
reloading plugin Default.comment
reloading plugin Default.convert_color_scheme
reloading plugin Default.convert_syntax
reloading plugin Default.copy_path
reloading plugin Default.echo
reloading plugin Default.exec
reloading plugin Default.fold
reloading plugin Default.font
reloading plugin Default.goto_line
reloading plugin Default.history_list
reloading plugin Default.html_print
reloading plugin Default.indentation
reloading plugin Default.install_package_control
reloading plugin Default.keymap
reloading plugin Default.kill_ring
reloading plugin Default.mark
reloading plugin Default.new_templates
reloading plugin Default.open_context_url
reloading plugin Default.open_in_browser
reloading plugin Default.pane
reloading plugin Default.paragraph
reloading plugin Default.paste_from_history
reloading plugin Default.profile
reloading plugin Default.quick_panel
reloading plugin Default.rename
reloading plugin Default.run_syntax_tests
reloading plugin Default.save_on_focus_lost
reloading plugin Default.scroll
reloading plugin Default.set_unsaved_view_name
reloading plugin Default.settings
reloading plugin Default.show_scope_name
reloading plugin Default.side_bar
reloading plugin Default.sort
reloading plugin Default.switch_file
reloading plugin Default.symbol
reloading plugin Default.transform
reloading plugin Default.transpose
reloading plugin Default.ui
reloading plugin CSS.css_completions
reloading plugin Diff.diff
reloading plugin HTML.encode_html_entities
reloading plugin HTML.html_completions
reloading plugin ShellScript.ShellScript
reloading python 3.3 plugin Package Control.Package Control
reloading python 3.3 plugin EasyClangComplete.EasyClangComplete
reloading python 3.3 plugin VimModelines.vimmodelines
plugins loaded
[ECC:DEBUG]:[settings_storage.py]:[need_reparse]:[MainThread]: settings complete
[ECC:DEBUG]:[settings_manager.py]:[settings_for_view]:[MainThread]: no settings for view 29. Reinitializing.
[ECC:DEBUG]:[settings_storage.py]:[__load_vars_from_settings]:[MainThread]: Overriding settings by project ones if needed:
[ECC:DEBUG]:[settings_storage.py]:[__load_vars_from_settings]:[MainThread]: Valid prefixes: ['ecc_', 'easy_clang_complete_']
[ECC:DEBUG]:[settings_storage.py]:[__load_vars_from_settings]:[MainThread]: Reading settings...
[ECC:DEBUG]:[settings_storage.py]:[__load_vars_from_settings]:[MainThread]: Settings sucessfully read...
[ECC:INFO]:[clang_utils.py]:[get_clang_version_str]:[MainThread]: Getting version from command: `clang++ -v`
[ECC:DEBUG]:[settings_storage.py]:[__populate_common_flags]:[MainThread]: Populating common_flags with current variables.
[ECC:DEBUG]:[file.py]:[expand_all]:[MainThread]: Populated '$project_base_path/src' to '/src'
[ECC:DEBUG]:[file.py]:[expand_all]:[MainThread]: Populated '/usr/lib/clang/$clang_version/include' to '['/usr/lib/llvm-15/lib/clang/15.0.6/include']'
[ECC:DEBUG]:[file.py]:[expand_all]:[MainThread]: Populated '$file_path' to '['/tmp/ZBuild/build/busybox-1.35.0/loginutils']'
[ECC:DEBUG]:[file.py]:[expand_all]:[MainThread]: Populated '~/some_folder/*' to '['/home/noppl/some_folder/*']'
[ECC:DEBUG]:[file.py]:[expand_all]:[MainThread]: Populated '$project_base_path/some/project/path/*' to '['/some/project/path/*']'
Traceback (most recent call last):
  File "/opt/sublime_text/Lib/python33/sublime_plugin.py", line 528, in on_api_ready
    plc()
  File "/home/noppl/.config/sublime-text/Packages/EasyClangComplete/EasyClangComplete.py", line 88, in plugin_loaded
    handle_plugin_loaded_function()
  File "/home/noppl/.config/sublime-text/Packages/EasyClangComplete/EasyClangComplete.py", line 286, in on_plugin_loaded
    self.on_activated_async(sublime.active_window().active_view())
  File "/opt/sublime_text/Lib/python33/sublime_plugin.py", line 190, in exception_handler
    return event_handler(*args)
  File "/home/noppl/.config/sublime-text/Packages/EasyClangComplete/EasyClangComplete.py", line 336, in on_activated_async
    settings = EasyClangComplete.settings_manager.settings_for_view(view)
  File "/home/noppl/.config/sublime-text/Packages/EasyClangComplete/plugin/settings/settings_manager.py", line 56, in settings_for_view
    self.__init_for_view(view)
  File "/home/noppl/.config/sublime-text/Packages/EasyClangComplete/plugin/settings/settings_manager.py", line 104, in __init_for_view
    self.__settings_dict[view_id].update_from_view(view)
  File "/home/noppl/.config/sublime-text/Packages/EasyClangComplete/plugin/settings/settings_storage.py", line 165, in update_from_view
    self.libclang_path)[0]
IndexError: list index out of range
Loaded VimModelines
[ECC:DEBUG]:[EasyClangComplete.py]:[on_activated_async]:[Dummy-4]: on_activated_async view id 29
[ECC:DEBUG]:[view_config_manager.py]:[load_for_view]:[Thread-5]: Generate new config for path: 29
[ECC:INFO]:[view_config.py]:[__init_completer]:[Thread-5]: init completer based on libclang
[ECC:DEBUG]:[lib_complete.py]:[__init__]:[Thread-5]: using bundled cindex: EasyClangComplete.plugin.clang.cindex50
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Platform: Linux, ('64bit', '')
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Python version: 3.3.6
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: User provided libclang_path: ''
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Searching for: 'libclang-15..so'
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Generating search folder
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Libclang search output = 'libclang-15..so'
[ECC:DEBUG]:[clang_utils.py]:[dir_from_output]:[Thread-5]: Real output: libclang-15..so
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Checking path: ./libclang-15..so
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Clang could not find './libclang-15..so'
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Searching for: 'libclang.so'
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Generating search folder
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Libclang search output = 'libclang.so'
[ECC:DEBUG]:[clang_utils.py]:[dir_from_output]:[Thread-5]: Real output: libclang.so
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Checking path: ./libclang.so
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Clang could not find './libclang.so'
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Searching for: 'libclang-15..so.10'
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Generating search folder
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Libclang search output = 'libclang-15..so.10'
[ECC:DEBUG]:[clang_utils.py]:[dir_from_output]:[Thread-5]: Real output: libclang-15..so.10
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Checking path: ./libclang-15..so.10
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Clang could not find './libclang-15..so.10'
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Searching for: 'libclang.so.10'
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Generating search folder
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Libclang search output = 'libclang.so.10'
[ECC:DEBUG]:[clang_utils.py]:[dir_from_output]:[Thread-5]: Real output: libclang.so.10
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Checking path: ./libclang.so.10
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Clang could not find './libclang.so.10'
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Searching for: 'libclang-15..so.9'
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Generating search folder
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Libclang search output = 'libclang-15..so.9'
[ECC:DEBUG]:[clang_utils.py]:[dir_from_output]:[Thread-5]: Real output: libclang-15..so.9
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Checking path: ./libclang-15..so.9
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Clang could not find './libclang-15..so.9'
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Searching for: 'libclang.so.9'
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Generating search folder
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Libclang search output = 'libclang.so.9'
[ECC:DEBUG]:[clang_utils.py]:[dir_from_output]:[Thread-5]: Real output: libclang.so.9
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Checking path: ./libclang.so.9
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Clang could not find './libclang.so.9'
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Searching for: 'libclang-15..so.8'
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Generating search folder
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Libclang search output = 'libclang-15..so.8'
[ECC:DEBUG]:[clang_utils.py]:[dir_from_output]:[Thread-5]: Real output: libclang-15..so.8
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Checking path: ./libclang-15..so.8
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Clang could not find './libclang-15..so.8'
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Searching for: 'libclang.so.8'
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Generating search folder
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Libclang search output = 'libclang.so.8'
[ECC:DEBUG]:[clang_utils.py]:[dir_from_output]:[Thread-5]: Real output: libclang.so.8
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Checking path: ./libclang.so.8
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Clang could not find './libclang.so.8'
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Searching for: 'libclang-15..so.7'
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Generating search folder
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Libclang search output = 'libclang-15..so.7'
[ECC:DEBUG]:[clang_utils.py]:[dir_from_output]:[Thread-5]: Real output: libclang-15..so.7
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Checking path: ./libclang-15..so.7
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Clang could not find './libclang-15..so.7'
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Searching for: 'libclang.so.7'
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Generating search folder
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Libclang search output = 'libclang.so.7'
[ECC:DEBUG]:[clang_utils.py]:[dir_from_output]:[Thread-5]: Real output: libclang.so.7
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Checking path: ./libclang.so.7
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Clang could not find './libclang.so.7'
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Searching for: 'libclang-15..so.1'
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Generating search folder
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Libclang search output = 'libclang-15..so.1'
[ECC:DEBUG]:[clang_utils.py]:[dir_from_output]:[Thread-5]: Real output: libclang-15..so.1
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Checking path: ./libclang-15..so.1
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Clang could not find './libclang-15..so.1'
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Searching for: 'libclang.so.1'
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Generating search folder
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Libclang search output = 'libclang.so.1'
[ECC:DEBUG]:[clang_utils.py]:[dir_from_output]:[Thread-5]: Real output: libclang.so.1
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Checking path: ./libclang.so.1
[ECC:DEBUG]:[clang_utils.py]:[find_libclang]:[Thread-5]: Clang could not find './libclang.so.1'
[ECC:ERROR]:[clang_utils.py]:[find_libclang]:[Thread-5]: No libclang found!
[ECC:ERROR]:[lib_complete.py]:[__init__]:[Thread-5]: error: libclang.so: cannot open shared object file: No such file or directory. To provide a path to libclang use Config.set_library_path() or Config.set_library_file().
[ECC:ERROR]:[view_config.py]:[__init_completer]:[Thread-5]: cannot initialize completer with libclang.
[ECC:INFO]:[view_config.py]:[__init_completer]:[Thread-5]: falling back to using clang in a subprocess.
[ECC:INFO]:[view_config.py]:[__init_completer]:[Thread-5]: init completer based on clang from cmd
[ECC:DEBUG]:[file.py]:[get_temp_dir]:[Thread-5]: Folder /tmp/EasyClangComplete exists.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions