Error ehooks core library is not found

Working on local GPU RTX 2060 super, Cuda 11.1, and got this error. jax has been installed successfully with the following pip install --upgrade jax jaxlib==0.1.57+cuda111 -f https://storage.google...

@hawkinsp

That means that CuDNN is not in your library path. Can you try adding your CUDA lib path to LD_LIBRARY_PATH?

@tomhennigan

@hawkinsp

About 5 months ago (a141cc6) we switched how we link GPU libraries to be the same as TensorFlow, namely, we use dlopen() to find libraries like CuDNN rather than linking against them directly. dlopen() looks for libraries using LD_LIBRARY_PATH, so that’s ultimately the cause of this error: we can’t find the libraries.

I suspect you would see the exact same behavior with tensorflow with GPU support: as far as I am aware, it uses the same code to find the GPU libraries. It might be interesting to verify that hypothesis: install a GPU version of TF and try running a convolution. You should see the same error as JAX (if you haven’t set LD_LIBRARY_PATH).

I also suspect if you set TF_CPP_MIN_LOG_LEVEL=0 then you may see some better logging that more clearly indicates what the real problem is.

I agree the error message isn’t very helpful; we should probably fix that.

@mil-ad

That does get rid of that error (although some other issues still remain in deepmind/dm-haiku#83).

It’d be great if the cuDNN dependency is documented in more details in the installation guide. The cuda bit is clear with the symbolic link and env variable but I didn’t know about cuDNN.

@milmor

That means that CuDNN is not in your library path. Can you try adding your CUDA lib path to LD_LIBRARY_PATH?

After

$ export PATH=/usr/local/cuda-11.1/bin${PATH:+:${PATH}}
$ export LD_LIBRARY_PATH=/usr/local/cuda-11.1/lib64
                         ${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

Still outputs the same error

@milmor

About 5 months ago (a141cc6) we switched how we link GPU libraries to be the same as TensorFlow, namely, we use dlopen() to find libraries like CuDNN rather than linking against them directly. dlopen() looks for libraries using LD_LIBRARY_PATH, so that’s ultimately the cause of this error: we can’t find the libraries.

I suspect you would see the exact same behavior with tensorflow with GPU support: as far as I am aware, it uses the same code to find the GPU libraries. It might be interesting to verify that hypothesis: install a GPU version of TF and try running a convolution. You should see the same error as JAX (if you haven’t set LD_LIBRARY_PATH).

I also suspect if you set TF_CPP_MIN_LOG_LEVEL=0 then you may see some better logging that more clearly indicates what the real problem is.

I agree the error message isn’t very helpful; we should probably fix that.

Tensorflow 2.3 works perfect, no error.

@mil-ad

Tensorflow 2.3 works perfect, no error.

Do you mean upgrading to 2.3 or downgrading to 2.3?

@milmor

Tensorflow 2.3 works perfect, no error.

Do you mean upgrading to 2.3 or downgrading to 2.3?

After creating a new conda enviroment, and installing tensorflow-gpu==2.3 using pip, there’s no error with cuda or tensorflow and can train succesfully. However jax still fails.

@tomhennigan

@mil-ad

Looks like this may have been fixed in 0.2.6. @milmor can you confirm?

@milmor

Looks like this may have been fixed in 0.2.6. @milmor can you confirm?

The issue has not been fixed in 0.2.6.

I found that although jaxlib .whl is for cuda111, jax version is 0.2.6 and it has been installed with:

pip install --upgrade jax jaxlib==0.1.57+cuda111 -f https://storage.googleapis.com/jax-releases/jax_releases.html

it seems that is looking for a different cuda version as shown in the following:

2020-11-23 22:06:33.769111: W tensorflow/stream_executor/platform/default/dso_loader.cc:59] Could not load dynamic library 'libcudart.so.10.1'; dlerror: libcudart.so.10.1: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /usr/local/cuda/lib64:/usr/local/cuda-11.1/lib64:
2020-11-23 22:06:34.835004: W tensorflow/stream_executor/platform/default/dso_loader.cc:59] Could not load dynamic library 'libcudart.so.10.1'; dlerror: libcudart.so.10.1: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /usr/local/cuda/lib64:/usr/local/cuda-11.1/lib64:
2020-11-23 22:06:34.835077: W tensorflow/stream_executor/platform/default/dso_loader.cc:59] Could not load dynamic library 'libcublas.so.10'; dlerror: libcublas.so.10: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /usr/local/cuda/lib64:/usr/local/cuda-11.1/lib64:
2020-11-23 22:06:34.835874: W tensorflow/stream_executor/platform/default/dso_loader.cc:59] Could not load dynamic library 'libcusolver.so.10'; dlerror: libcusolver.so.10: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /usr/local/cuda/lib64:/usr/local/cuda-11.1/lib64:
2020-11-23 22:06:34.835936: W tensorflow/stream_executor/platform/default/dso_loader.cc:59] Could not load dynamic library 'libcusparse.so.10'; dlerror: libcusparse.so.10: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /usr/local/cuda/lib64:/usr/local/cuda-11.1/lib64:
2020-11-23 22:06:34.835992: W tensorflow/stream_executor/platform/default/dso_loader.cc:59] Could not load dynamic library 'libcudnn.so.7'; dlerror: libcudnn.so.7: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /usr/local/cuda/lib64:/usr/local/cuda-11.1/lib64:
2020-11-23 22:06:34.835999: W tensorflow/core/common_runtime/gpu/gpu_device.cc:1753] Cannot dlopen some GPU libraries. Please make sure the missing libraries mentioned above are installed properly if you would like to use GPU. Follow the guide at https://www.tensorflow.org/install/gpu for how to download and setup the required libraries for your platform.
Skipping registering GPU devices...
2020-11-23 22:06:44.328599: W external/org_tensorflow/tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcudnn.so.8'; dlerror: libcudnn.so.8: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /usr/local/cuda/lib64:/usr/local/cuda-11.1/lib64:
2020-11-23 22:06:44.328623: E external/org_tensorflow/tensorflow/stream_executor/cuda/cuda_dnn.cc:349] Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
2020-11-23 22:06:44.328778: E external/org_tensorflow/tensorflow/stream_executor/cuda/cuda_dnn.cc:349] Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
2020-11-23 22:06:44.328809: E external/org_tensorflow/tensorflow/stream_executor/cuda/cuda_dnn.cc:349] Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
2020-11-23 22:06:44.328851: W external/org_tensorflow/tensorflow/compiler/xla/service/gpu/gpu_conv_algorithm_picker.cc:772] Failed to determine best cudnn convolution algorithm: Internal: All algorithms tried for convolution %custom-call.2 = (f32[10000,28,28,32]{2,1,3,0}, u8[0]{0}) custom-call(f32[10000,28,28,1]{2,1,3,0} %multiply, f32[3,3,1,32]{1,0,2,3} %copy.5, f32[32]{0} %parameter.2), window={size=3x3 pad=1_1x1_1}, dim_labels=b01f_01io->b01f, custom_call_target="__cudnn$convBiasActivationForward", metadata={op_type="conv_general_dilated" op_name="jit(evaluate)/conv_general_dilated[ batch_group_count=1n                                    dimension_numbers=ConvDimensionNumbers(lhs_spec=(0, 3, 1, 2), rhs_spec=(3, 2, 0, 1), out_spec=(0, 3, 1, 2))n                                    feature_group_count=1n                                    lhs_dilation=(1, 1)n                                    lhs_shape=(10000, 28, 28, 1)n                                    padding=((1, 1), (1, 1))n                                    precision=Nonen                                    rhs_dilation=(1, 1)n                                    rhs_shape=(3, 3, 1, 32)n                                    window_strides=(1, 1) ]" source_file="/home/emam/anaconda3/envs/flax/lib/python3.7/site-packages/flax/nn/linear.py" source_line=247}, backend_config="{"algorithm":"0","tensor_ops_enabled":false,"conv_result_scale":1,"activation_mode":"2","side_input_scale":0}" failed. Falling back to default algorithm. 

Convolution performance may be suboptimal.
2020-11-23 22:06:44.400440: E external/org_tensorflow/tensorflow/stream_executor/cuda/cuda_dnn.cc:349] Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
2020-11-23 22:06:44.400469: E external/org_tensorflow/tensorflow/stream_executor/cuda/cuda_dnn.cc:349] Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
2020-11-23 22:06:44.400488: E external/org_tensorflow/tensorflow/stream_executor/cuda/cuda_dnn.cc:349] Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
2020-11-23 22:06:44.400516: W external/org_tensorflow/tensorflow/compiler/xla/service/gpu/gpu_conv_algorithm_picker.cc:772] Failed to determine best cudnn convolution algorithm: Internal: All algorithms tried for convolution %custom-call.3 = (f32[10000,14,14,64]{2,1,3,0}, u8[0]{0}) custom-call(f32[10000,14,14,32]{2,1,3,0} %multiply.3, f32[3,3,32,64]{1,0,2,3} %copy.6, f32[64]{0} %parameter.4), window={size=3x3 pad=1_1x1_1}, dim_labels=b01f_01io->b01f, custom_call_target="__cudnn$convBiasActivationForward", metadata={op_type="conv_general_dilated" op_name="jit(evaluate)/conv_general_dilated[ batch_group_count=1n                                    dimension_numbers=ConvDimensionNumbers(lhs_spec=(0, 3, 1, 2), rhs_spec=(3, 2, 0, 1), out_spec=(0, 3, 1, 2))n                                    feature_group_count=1n                                    lhs_dilation=(1, 1)n                                    lhs_shape=(10000, 14, 14, 32)n                                    padding=((1, 1), (1, 1))n                                    precision=Nonen                                    rhs_dilation=(1, 1)n                                    rhs_shape=(3, 3, 32, 64)n                                    window_strides=(1, 1) ]" source_file="/home/emam/anaconda3/envs/flax/lib/python3.7/site-packages/flax/nn/linear.py" source_line=247}, backend_config="{"algorithm":"0","tensor_ops_enabled":false,"conv_result_scale":1,"activation_mode":"2","side_input_scale":0}" failed. Falling back to default algorithm. 

Convolution performance may be suboptimal.
2020-11-23 22:06:45.077602: E external/org_tensorflow/tensorflow/stream_executor/cuda/cuda_dnn.cc:349] Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
2020-11-23 22:06:45.077637: E external/org_tensorflow/tensorflow/compiler/xla/pjrt/pjrt_client.cc:1809] Execution of replica 0 failed: Unimplemented: DNN library is not found.

@Robert-Lu

Thank you for your comments on this thread. I met the similar problem and I solved it after manually install CuDNN. You could refer to this official guide for installing it. I agree that the dependency of CuDNN library could be introduced in the new version’s install instruction.

@MrinankSharma

Hi everyone,

I’m having a similar issue. I also get the RuntimeError: Unimplemented: DNN library is not found..

However, I see a different error suggesting that CuDNN was loaded:

2021-01-13 17:12:23.262374: I external/org_tensorflow/tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudnn.so.7
2021-01-13 17:12:24.491302: E external/org_tensorflow/tensorflow/stream_executor/cuda/cuda_dnn.cc:336] Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR

Any pointers?

@falesiani

export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/cuda/lib64

added to my .bashrc

based on:
https://forums.developer.nvidia.com/t/path-ld-library-path/48080

but error stays when using CNN module from stax or from haiku

RuntimeError: Unimplemented: DNN library is not found.: while running replica 0 and partition 0 of a replicated computation (other replicas may have failed as well).

@AntreasAntoniou

I am also having the same issue. I can confirm that my LD_LIBRARY is correctly configured.

@Ir1d

I am also having the same issue. I can confirm that my LD_LIBRARY is correctly configured. I pointed LD_LIBRARY_PATH to CUDA path, and there is libcudnn.so.7 under it . But I get 2021-12-20 00:51:16.501936: W external/org_tensorflow/tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dyn amic library 'libcudnn.so.7'; dlerror: libcudnn.so.7: cannot open shared object file: No such file or directory;

@gabehope

I was also getting this error. I don’t know the details of what was happening, but the issue for me seemed to stem from JAX and Tensorflow not sharing the GPU nicely. When I added this code snippet to the top of my code it seems to run (taken from the Flax MNIST example):

# Hide any GPUs from TensorFlow. Otherwise TF might reserve memory and make
# it unavailable to JAX.
tf.config.experimental.set_visible_devices([], 'GPU')

The comment suggests this is a known issue, but a quick google only brings up an old closed issue #120. I don’t get the same issue running the same code on Colab (without the above snippet), so it may be particular to my machine’s configuration.

Edit: Ah I now see there is a whole page on this in the JAX documentation. Would be very useful if JAX could detect this issue and give a helpful error message. Based on the «DNN library not found» error I went down the rabbit hole of thinking I had the wrong version of cuda/cudnn.

@Ir1d

I also believe this is due to wrong version of cuda/cudnn. I was able to overcome this issue by recreating the conda environment .

@Waterkin

@xidulu

I was able to solve this problem by adding these 4 lines of code at the head of the file:

import os
os.environ['XLA_PYTHON_CLIENT_PREALLOCATE'] ='false'
os.environ['XLA_PYTHON_CLIENT_ALLOCATOR']='platform'
os.environ['TF_FORCE_GPU_ALLOW_GROWTH'] = 'true'
colinpeng-datascience, elicassion, lhao499, FerranAlet, brunolinux, sAbhay, Linkerbrain, LithiumDA, WiratchawaKannika, hlzl, and zdhNarsil reacted with thumbs up emoji
hsm207 reacted with hooray emoji

@gigadeplex

What worked for me:
conda install -c anaconda cudnn=8.2.1 cudatoolkit=11.3

Check if LD_LIBRARY_PATH is empty: echo $LD_LIBRARY_PATH
If empty export LD_LIBRARY_PATH=$CONDA_PREFIX/lib/
else export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CONDA_PREFIX/lib/

Finally pip install --upgrade "jax[cuda]" -f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html

@sudhakarsingh27

@sudhakarsingh27
sudhakarsingh27

added

P2 (eventual)

This ought to be addressed, but has no schedule at the moment. (Assignee optional)

needs info

More information is required to diagnose & prioritize the issue.

labels

Aug 12, 2022

@bshirani

fixed for me

# install cudnn first
pip uninstall jax  
pip install jax[cuda]

@HoldOffHunger

Still broken.

Traceback (most recent call last):
  File "C:UsersMakhnofaceswaplibclilauncher.py", line 222, in execute_script
    process.process()
  File "C:UsersMakhnofaceswapscriptsextract.py", line 165, in process
    extract.process()
  File "C:UsersMakhnofaceswapscriptsextract.py", line 689, in process
    self._run_extraction()
  File "C:UsersMakhnofaceswapscriptsextract.py", line 709, in _run_extraction
    self._extractor.launch()
  File "C:UsersMakhnofaceswappluginsextractpipeline.py", line 271, in launch
    self._launch_plugin(phase)
  File "C:UsersMakhnofaceswappluginsextractpipeline.py", line 700, in _launch_plugin
    plugin.initialize(**kwargs)
  File "C:UsersMakhnofaceswappluginsextractalign_basealigner.py", line 199, in initialize
    super().initialize(*args, **kwargs)
  File "C:UsersMakhnofaceswappluginsextract_base.py", line 482, in initialize
    self.init_model()
  File "C:UsersMakhnofaceswappluginsextractalignfan.py", line 50, in init_model
    self.model.predict(placeholder)
  File "C:UsersMakhnofaceswaplibmodelsession.py", line 105, in predict
    return self._model.predict(feed, verbose=0, batch_size=batch_size)
  File "C:UsersMakhnoMiniConda3envsfaceswaplibsite-packageskerasutilstraceback_utils.py", line 70, in error_handler
    raise e.with_traceback(filtered_tb) from None
  File "C:UsersMakhnoMiniConda3envsfaceswaplibsite-packagestensorflowpythoneagerexecute.py", line 54, in quick_execute
    tensors = pywrap_tfe.TFE_Py_Execute(ctx._handle, device_name, op_name,
tensorflow.python.framework.errors_impl.UnimplementedError: Graph execution error:

Detected at node 'model_1/conv1/Conv2D' defined at (most recent call last):
    File "C:UsersMakhnofaceswapfaceswap.py", line 56, in <module>
      _main()
    File "C:UsersMakhnofaceswapfaceswap.py", line 52, in _main
      arguments.func(arguments)
    File "C:UsersMakhnofaceswaplibclilauncher.py", line 222, in execute_script
      process.process()
    File "C:UsersMakhnofaceswapscriptsextract.py", line 165, in process
      extract.process()
    File "C:UsersMakhnofaceswapscriptsextract.py", line 689, in process
      self._run_extraction()
    File "C:UsersMakhnofaceswapscriptsextract.py", line 709, in _run_extraction
      self._extractor.launch()
    File "C:UsersMakhnofaceswappluginsextractpipeline.py", line 271, in launch
      self._launch_plugin(phase)
    File "C:UsersMakhnofaceswappluginsextractpipeline.py", line 700, in _launch_plugin
      plugin.initialize(**kwargs)
    File "C:UsersMakhnofaceswappluginsextractalign_basealigner.py", line 199, in initialize
      super().initialize(*args, **kwargs)
    File "C:UsersMakhnofaceswappluginsextract_base.py", line 482, in initialize
      self.init_model()
    File "C:UsersMakhnofaceswappluginsextractalignfan.py", line 50, in init_model
      self.model.predict(placeholder)
    File "C:UsersMakhnofaceswaplibmodelsession.py", line 105, in predict
      return self._model.predict(feed, verbose=0, batch_size=batch_size)
    File "C:UsersMakhnoMiniConda3envsfaceswaplibsite-packageskerasutilstraceback_utils.py", line 65, in error_handler
      return fn(*args, **kwargs)
    File "C:UsersMakhnoMiniConda3envsfaceswaplibsite-packageskerasenginetraining.py", line 2253, in predict
      tmp_batch_outputs = self.predict_function(iterator)
    File "C:UsersMakhnoMiniConda3envsfaceswaplibsite-packageskerasenginetraining.py", line 2041, in predict_function
      return step_function(self, iterator)
    File "C:UsersMakhnoMiniConda3envsfaceswaplibsite-packageskerasenginetraining.py", line 2027, in step_function
      outputs = model.distribute_strategy.run(run_step, args=(data,))
    File "C:UsersMakhnoMiniConda3envsfaceswaplibsite-packageskerasenginetraining.py", line 2015, in run_step
      outputs = model.predict_step(data)
    File "C:UsersMakhnoMiniConda3envsfaceswaplibsite-packageskerasenginetraining.py", line 1983, in predict_step
      return self(x, training=False)
    File "C:UsersMakhnoMiniConda3envsfaceswaplibsite-packageskerasutilstraceback_utils.py", line 65, in error_handler
      return fn(*args, **kwargs)
    File "C:UsersMakhnoMiniConda3envsfaceswaplibsite-packageskerasenginetraining.py", line 557, in __call__
      return super().__call__(*args, **kwargs)
    File "C:UsersMakhnoMiniConda3envsfaceswaplibsite-packageskerasutilstraceback_utils.py", line 65, in error_handler
      return fn(*args, **kwargs)
    File "C:UsersMakhnoMiniConda3envsfaceswaplibsite-packageskerasenginebase_layer.py", line 1097, in __call__
      outputs = call_fn(inputs, *args, **kwargs)
    File "C:UsersMakhnoMiniConda3envsfaceswaplibsite-packageskerasutilstraceback_utils.py", line 96, in error_handler
      return fn(*args, **kwargs)
    File "C:UsersMakhnoMiniConda3envsfaceswaplibsite-packageskerasenginefunctional.py", line 510, in call
      return self._run_internal_graph(inputs, training=training, mask=mask)
    File "C:UsersMakhnoMiniConda3envsfaceswaplibsite-packageskerasenginefunctional.py", line 667, in _run_internal_graph
      outputs = node.layer(*args, **kwargs)
    File "C:UsersMakhnoMiniConda3envsfaceswaplibsite-packageskerasutilstraceback_utils.py", line 65, in error_handler
      return fn(*args, **kwargs)
    File "C:UsersMakhnoMiniConda3envsfaceswaplibsite-packageskerasenginebase_layer.py", line 1097, in __call__
      outputs = call_fn(inputs, *args, **kwargs)
    File "C:UsersMakhnoMiniConda3envsfaceswaplibsite-packageskerasutilstraceback_utils.py", line 96, in error_handler
      return fn(*args, **kwargs)
    File "C:UsersMakhnoMiniConda3envsfaceswaplibsite-packageskeraslayersconvolutionalbase_conv.py", line 283, in call
      outputs = self.convolution_op(inputs, self.kernel)
    File "C:UsersMakhnoMiniConda3envsfaceswaplibsite-packageskeraslayersconvolutionalbase_conv.py", line 255, in convolution_op
      return tf.nn.convolution(
Node: 'model_1/conv1/Conv2D'
DNN library is not found.
	 [[{{node model_1/conv1/Conv2D}}]] [Op:__inference_predict_function_18866]
01/07/2023 18:48:43 CRITICAL An unexpected crash has occurred. Crash report written to 'C:UsersMakhnofaceswapcrash_report.2023.01.07.184843827561.log'. You MUST provide this file if seeking assistance. Please verify you are running the latest version of faceswap before reporting

@Balfredino123

This comment was marked as off-topic.

@thekevinscott

Arrived here after googling, running in to the same error with the DNN library.

The comment from @gabehope helped me resolve my problem. Specifically, I was running both Tensorflow and JAX in the same script and, presumably, they were both fighting for GPU memory.

For reference, here’s the (quite helpful!) page on memory allocation with JAX.

It would be helpful if there were some way for the error to better indicate that it’s a memory issue, though it sounds like for others it may be a different problem than what Gabe and I were running into.

Это руководство поможет Вам, если у вас появляется сообщение об ошибке «Точка входа в процедуру не найдена в библиотеке DLL«. Эта ошибка появляется, когда программе или игре не удается найти библиотеку DLL, которая должна быть запущена. Также, эта ошибка может быть из-за повреждения DLL файла или библиотека находится не в правильном каталоге по указанному пути. В синтаксисе ошибке, могут быть разные имена, к примеру kernel32.dll, libxml2.dll или msvcrt.dll. Очень запутанная ошибка и решение её могут загнать в тупик, но давайте разберем советы, которые помогут исправить, когда «Точка входа не найдена в библиотеке dll».

Ошибка: Точка входа не найдена в библиотеке dll

Способ 1. Во первых, переустановите саму программу еще раз и проверьте устранена ли проблема. Далее обновите систему Windows до последней версии. И конечно же, это может быть вирус. Воспользуйтесь антивирусным сканером.

Способ 2. Если DLL файлы повреждены, то есть смысл воспользоваться встроенными инструментами CHKDSK, SFC и DISM для восстановления системных файлов и проверки диска на ошибки. Вводите по одной команде и перезагружайте ПК, после каждого законченного процесса. Откройте командную строку от имени администратора и введите команды ниже:

  1. chkdsk /f /r /x — проверка диска на ошибки.
  2. sfc /scannow — проверка системных файлов.
  3. DISM /Online /Cleanup-Image /RestoreHealth — восстановление из образа.

Проверка и восстановление файлов

Способ 2. Иногда нужно зарегистрировать заново dll файл. Для этого откройте командную строку от имени администратора и введите команду:

channel

  • regsvr32.exe kernel32.dll

Где kernel32.dll это предполагаемый файл, который выдает ошибку. Этот способ также помогает, когда вы скопировали файл с другого ПК и его нужно зарегить в системе.

регистрация kernel32.dll файла

Способ 3. Попробуйте найти файл, который выдает ошибку, на другом ПК или попросите у знакомого, чтобы скинул. Ни в коем случае не скачивайте отдельный файл со сторонних источников. Пути файлов можно посмотреть в свойствах файла. Когда вы скопируйте к себе файл, то его нужно будет зарегистрировать способ выше (способ 2).

Способ 4. Не установленный пакета Visual C++, может выдавать эту ошибку. Также, в некоторых случаях нужно два типа пакета Visual C++ x32-бита и x64-бита. К примеру, если у вас точка входа не найдена в библиотеке DLL и указано имя файла msvcr120.dll, то нужно установить Visual C ++ 2013. Это можно посмотреть в свойствах самого DLL файла во вкладке «Подробно». Скачайте с официально сайта Microsoft набрав определенную версию пакета в Google поиске и установите сразу два типа x32-бита и x64-бита.

Узнать версию Visual dll файла

Способ 5. Проверьте оперативную память на ошибки. Нажмите Win+R и введите mdsched.exe. Далее следуйте инструкциям на экране и после перезагрузки ПК начнется диагностика ОЗУ. Это руководство поможет вам диагностировать ошибки в ОЗУ.

Диагностика озу

Советы:

  1. Разгон вашего ПК может работать месяц без ошибок, а потом выдавать всякие ошибки. Откатите систему назад на заводские настройки.
  2. Если вы используете Windows XP и пытаетесь запустить Microsoft Office 2010, то вам нужно удалить пакет обновлений KB4462157 или КВ4462174.
  3. Воспользуйтесь программы для очистки реестра.
  4. Откройте «Просмотрщик событий» и найдите там ошибку похожую на ту, что выдавало вам. Можно прикинуть время, чтобы сократить труд.

Смотрите еще:

  • На компьютере отсутствует api-ms-win-crt-runtime-l1-1-0.dll
  • Отсутствует файл api-ms-win-core-libraryloader-l1-1-1.dll
  • Порядковый номер xxxx не найден в библиотеке DLL
  • Скачать MSVCR100.dll, MSVCP100.dll и исправить ошибку в Windows
  • Отсутствует MSVCP110.dll или MSVCR110.dll на ПК с Windows 10

[ Telegram | Поддержать ]

Я получаю сообщение об ошибке после того, как помещаю свое приложение в AdMob. Приложение работало до сегодняшнего дня. Ошибка следующая:

ld: library not found for -lGoogleAdMobAds
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Как я могу это исправить? Спасибо.

26 ответов

Лучший ответ

Иногда вы просто удаляете ссылку на библиотеку и снова добавляете ссылку.

Помимо добавления Google Mobile Ads SDK и других библиотек с нуля, я бы порекомендовал вам проверить Пути поиска в библиотеках . Бывают случаи, когда вы копируете или дублируете цель, Xcode решает, что ему нужно избегать двойных кавычек «с помощью ». Убедитесь, что вы удалили все — это должно выглядеть так:

enter image description here

Мне удалось продублировать ошибку, добавив к моему пути несколько символов «».


120

raurora
5 Июн 2014 в 05:27

Это происходит, если вы используете cocoapods, используйте файл .xcworkspace вместо файла по умолчанию .xcodeproj.


24

Kishan Vaghela
13 Янв 2020 в 11:39

Это также может произойти, если вы откроете файл проекта вместо рабочего пространства. Я сам потратил, как день, таким образом.


9

kkodev
13 Дек 2016 в 19:01

У меня была аналогичная проблема «библиотека не найдена». Однако это произошло потому, что я случайно использовал файл .xcodeproj вместо файла .xcworkspace.


357

kenorb
19 Июл 2017 в 16:29

Выберите цель, перейдите к "Build Phases" в "Link Binary With Libraries" удалите ".a" файл этой библиотеки. Очистить и построить.


96

Abuzar Amin
2 Май 2017 в 10:55

Если ошибка связана с Cocoapods, как показано ниже:

library not found for -lPod-...

Вам необходимо установить флажок Другие флаги компоновщика и удалить его оттуда.

Дополнительная информация: Если у вас есть старый проект, в котором используются cocoapods. А недавно вам нужно было добавить use_frameworks! в свой подфайл. cocoapods не будет добавлять библиотеки в другие флаги компоновщика больше не вызывает его по наследству. Следовательно, вам может потребоваться удалить эти вручную из других флагов компоновщика, которые они были добавлены ранее используя use_frameworks!


68

hasan
1 Окт 2017 в 13:23

В моем случае Xcode 7 также работал в Xcode 9.1 / 9.2

ld: library not found for -ldAfnetworking
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Установить Build Active architecture Only на Yes

enter image description here


59

Ted
26 Мар 2021 в 20:17

Если ошибка похожа на следующую

Ld: библиотека не найдена для -lpods

Я обнаружил, что файл «libPods.a» красного цвета (например, отсутствующие файлы) каким-то образом был создан в группе Framework проекта. Я просто удалил этот файл, и все стало нормально.

РЕДАКТИРОВАТЬ: другое решение

Другое решение, на которое я уже ответил в аналогичном вопросе, находится в этой ссылке


15

Teena nath Paul
15 Ноя 2017 в 15:01

Перейдите к Этапы сборки -> Связать двоичный файл с библиотеками и удалите библиотеку, в которой отображаются ошибки, поскольку эта библиотека недоступна в папке проекта.


13

Hitesh Agarwal
14 Мар 2018 в 10:38

Поздно для ответа, но вот список вещей, которые я пробовал, так что он будет в одном месте, если кто-то захочет попытаться исправить проблему.

  1. Действительная архитектура = armv7 armv7s
  2. Только сборка активной архитектуры = НЕТ
  3. Цель -> Параметры сборки -> Другие флаги компоновщика = $ (унаследовано)
  4. Цель -> Параметры сборки -> Путь поиска в библиотеке = $ (унаследовано)
  5. Чистый продукт
  6. Pod Update в терминале


7

reetu
20 Июн 2017 в 22:40

ld: библиотека не найдена для

Это ошибка времени компиляции для Static Library, вызванная Static Linker

ld: library not found for -l<Library_name>

1. Вы можете получить ошибку Library not found for, если не указали путь библиотеки к Library Search Paths(LIBRARY_SEARCH_PATHS)

ld означает Static Linker, который не может найти расположение библиотеки. Как разработчику вы должны помочь компоновщику и указать Library Search Paths

Build Settings -> Search Paths -> Library Search Paths 

2.Также вы можете получить эту ошибку, если впервые открываете новый проект (.xcodeproj) с поддержкой Cocoapods, запустите pod update. Чтобы исправить это, просто закройте этот проект и вместо этого откройте созданное рабочее пространство (.xcworkspace )

[Словарный запас]


4

yoAlex5
15 Фев 2022 в 12:14

Что касается меня, эта проблема возникает из-за того, что я установил библиотеку материалов для IOS. решить эту проблему

1. Перейдите в Настройки сборки целевого приложения.

2. Найдите другие флаги компоновщика

3: Откройте другие флаги компоновщика и проверьте библиотеку, которая упоминается в ошибке.

4: удалите этот флаг.

5: Очистить и построить.

Надеюсь, это решит вашу проблему.


3

Fahad Qasim
3 Апр 2019 в 11:37

В моем случае возникла проблема с именованием. Моя библиотека называлась ios-admob-mm-adapter.a, но Xcode ожидал, что имя должно начинаться с префикса lib . Я только что переименовал свою библиотеку в libios-admob-mm-adapter.a и исправил проблему.

Я использую Cocoapods, и он связывает библиотеки с опцией Другие флаги компоновщика в настройках сборки моей цели. Флаг выглядит как -l"ios-admob-mm-adapter"

Надеюсь, это поможет кому-то другому


2

Accid Bright
15 Апр 2016 в 09:39

Просто GoogleAdMobAds.a отсутствует в цели проекта. Для меня это было libAdIdAccessLibrary.a, пожалуйста, проверьте прикрепленный снимок экрана

enter image description here


2

Community
20 Июн 2020 в 12:12

В случае ld: library not found for -{LIBRARY_NAME} произошло, потому что файл (ы) библиотеки не существует.

Проверьте путь к библиотеке на вкладке «Пути поиска библиотеки» для целевого приложения.

Путь к файлу (ам) библиотеки должен соответствовать реальному пути, например, если ваш файл (ы) находится в корне проекта, вы должны указать путь как $(PROJECT_DIR)


2

Reza Dehnavi
1 Июн 2019 в 09:22

  1. Папка очищенной сборки
  2. Перезапущен XCode

Ушел…


2

batthis
2 Апр 2020 в 17:49

Я знаю, что это немного устарело, но я столкнулся с аналогичной проблемой, и запуск «pod update» исправил это для меня. Ошибка моей библиотеки была связана с AFNetworking …

Просто будьте осторожны при обновлении модуля, если вы не используете явные версии в своем файле модуля.


1

Trevor Panhorst
29 Сен 2015 в 18:14

Это очень странная ошибка.

У меня была эта ошибка с -ldAfnetworking, и я копирую свой проект только по другому пути и работает.


1

A. Trejo
4 Фев 2016 в 22:55

Я попытался переименовать свою конфигурацию сборки Release в Production, но, очевидно, капсулам какао это не нравится. Я снова переименовал его в Release, и все строится отлично.


1

DimaSan
29 Окт 2016 в 20:14

Ответ @raurora указал мне в правильном направлении. Я включал библиотеки в свой путь «watchkitapp Extension / lib». В этом случае путь поиска в библиотеке нужно было экранировать с помощью символа », но компоновщик, похоже, этого не понимал. Чтобы исправить / обойти проблему, я переместил свой путь к библиотеке на один уровень выше, чтобы он больше не находился в каталоге, который содержал пробел в имени.


1

Justin Domnitz
5 Дек 2016 в 18:21

Я просто обновляю pod-файл «pod update», и он начинает нормально работать.


1

Chandni
23 Июл 2018 в 14:55

Запуск «обновления модуля» в моем проекте устранил мою проблему с ошибкой «библиотека не найдена для -lSTPopup».

Замечая ответ Тревора Панхорста:

«Просто будьте осторожны при обновлении модуля, если вы не используете явные версии в своем файле модуля».


1

Juan Santos
31 Июл 2018 в 13:41

Простое решение. Вот как бы я решил проблему:

  1. Перейти в каталог platforms/ios
  2. Затем выполните команду pod install

Вот и все. Это должно установить недостающую библиотеку.


1

Manoj Shrestha
22 Янв 2019 в 05:33

У меня были похожие ошибки в библиотеке, которая не найдена. В конце концов, вот как я смог решить эту проблему

  1. Перед тем, как начать с Xcode Archive, использовал флаттер-сборку iOS
  2. Изменена цель развертывания IOS на более высокую цель iOS 11.2. Раньше у меня было что-то вроде 8.0, которое давало все вышеперечисленные ошибки.
  3. Убедитесь, что цели развертывания IOS в Xcode совпадают в Project, Target и Pods.


0

dnscode
9 Июл 2020 в 02:06

Я также столкнулся с той же проблемой и потратил более 24 часов на ее решение, я пробовал все из вышеперечисленных решений, но в конечном итоге у меня работает

  1. Настройки сборки -> Выбрать цель
  2. Основы
  3. Определяемые пользователем
  4. Измените VALID_ARCHS на arm64

Чувак, тебе нужна переустановка.

  1. Удалите просто стручки «rm -rf».
  2. Установите Pods «установка комплекта exec pod»

Тогда хорошо работает.


0

Георгий Кремлин
27 Июн 2022 в 15:56

  • Home
  • Forum
  • Qt
  • Installation and Deployment
  • libQt5Core.so.5: version `Qt_5.12′ not found error

  1. Default libQt5Core.so.5: version `Qt_5.12′ not found error

    Hi all,

    I installed Qt 5.12.1 on Ubuntu 18.04. I am getting the following error when i try to run or debug one of my projects. I am working on this project from more than 2-3 months and everything was working fine until a couple of hours ago. However, other projects are building and running fine with this same version Qt 5.12. The program exits with only this message displayed on the application output window.

    /path/to/Qt/project: /usr/lib/x86_64-linux-gnu/libQt5Core.so.5: version `Qt_5.12′ not found (required by /path/to/Qt/project)

    I cannot figure out the problem since it was working fine until some time ago. Any help will be greatly appreciated.

    Thank you in advance.

    Last edited by anirudh_92; 19th June 2019 at 18:07.


  2. Default Re: libQt5Core.so.5: version `Qt_5.12′ not found error

    Quote Originally Posted by anirudh_92
    View Post

    I installed Qt 5.12.1 on Ubuntu 18.04.

    Using the Qt installer?

    Quote Originally Posted by anirudh_92
    View Post

    /path/to/Qt/project: /usr/lib/x86_64-linux-gnu/libQt5Core.so.5: version `Qt_5.12′ not found (required by /path/to/Qt/project)

    This says that the program is trying to use the system Qt (installed from distribution packages).

    Quote Originally Posted by anirudh_92
    View Post

    I cannot figure out the problem since it was working fine until some time ago.

    You might have always used the system Qt without realizing it and all was fine since it happened to be the same version.

    If Ubuntu has moved to a different version now then this suddenly stopped working.

    Make sure you are using the correct qmake to create the build files.
    You might also have to set the LD_LIBRARY_PATH variable to point to your Qt installation

    Cheers,
    _


  3. Default Re: libQt5Core.so.5: version `Qt_5.12′ not found error

    Quote Originally Posted by anda_skoa
    View Post

    Using the Qt installer?

    _

    Hi,

    Thanks for your reply. Yes, i installed using the qt installer.

    Quote Originally Posted by anda_skoa
    View Post

    This says that the program is trying to use the system Qt (installed from distribution packages).

    You might have always used the system Qt without realizing it and all was fine since it happened to be the same version.

    If Ubuntu has moved to a different version now then this suddenly stopped working.

    Make sure you are using the correct qmake to create the build files.
    You might also have to set the LD_LIBRARY_PATH variable to point to your Qt installation

    Cheers,
    _

    when i look at tools -> options in qt creator, it points the qmake location to gcc_64 folder inside where qt is installed (home/anirudh/opt/Qt/). I assume this is the correct qmake that is being used.

    I do not understand what the LD_LIBRARY_PATH should be pointing to. Because i cannot find any libraries or binary files inside the Qt installation folder. Plase let me know if the reply is not clear.

    Thanks and awaiting a reply,
    Anirudh


    Added after 1 19 minutes:

    Quote Originally Posted by anirudh_92
    View Post

    Hi,

    Thanks for your reply. Yes, i installed using the qt installer.

    when i look at tools -> options in qt creator, it points the qmake location to gcc_64 folder inside where qt is installed (home/anirudh/opt/Qt/). I assume this is the correct qmake that is being used.

    I do not understand what the LD_LIBRARY_PATH should be pointing to. Because i cannot find any libraries or binary files inside the Qt installation folder. Plase let me know if the reply is not clear.

    Thanks and awaiting a reply,
    Anirudh

    It seems like i cannot edit my reply. So, I am posting another comment.

    EDIT:

    I figured out that my local qt installation is version 5.12. While /usr/lib/x86_64-linux-gnu/ folder contains Qt libraries related to version 5.9. I added the path /path/to/qt5.12/gcc_64/lib to LD_LIBRARY_PATH through .bashrc file. However, Qt seems to be still having problems finding libraries in my Qt installation folder. Is there any way to tell Qt to use the libraries in my Qt installtion folder instead of looking in /usr/lib/x86_64-linux-gnu/ ?

    Thanks,
    Anirudh

    Last edited by anirudh_92; 1st July 2019 at 15:08.


  4. Default Re: libQt5Core.so.5: version `Qt_5.12′ not found error

    Make sure LD_LIBRARY_PATH is set in the environment you run QtCreator from, e.g. by starting qtcreator from a shell that has this variable set.

    You can also use «ldd» to check on your executable which library it is linking to

    $ ldd /your/program

    Cheers,
    _


  5. Default Re: libQt5Core.so.5: version `Qt_5.12′ not found error

    Quote Originally Posted by anda_skoa
    View Post

    Make sure LD_LIBRARY_PATH is set in the environment you run QtCreator from, e.g. by starting qtcreator from a shell that has this variable set.

    You can also use «ldd» to check on your executable which library it is linking to

    $ ldd /your/program

    Cheers,
    _

    Hi,

    Thanks for the reply. I was using a desktop shortcut icon for launching Qt creator. For now, I moved the system Qt libraries (relating to Qt 5.9) to another folder outside the LD_LIBRARY_PATH and everything is working fine as Qt detects the local installation libraries (relating to Qt 5.12).

    Thanks,
    Anirudh


  6. Default Re: libQt5Core.so.5: version `Qt_5.12′ not found error

    Quote Originally Posted by anirudh_92
    View Post

    For now, I moved the system Qt libraries (relating to Qt 5.9) to another folder

    Moving system libraries is a very bad idea.
    Every update will restore them and you are back in the previous position.

    Also things might rely on them being present

    You can set LD_LIRBARY_PATH in the «Projects» setting in QtCreator or you create a launcher script that sets LD_LIBRARY_PATH and then use this in your desktop icon instead of QtCreator

    Cheers,
    _


  7. Default Re: libQt5Core.so.5: version `Qt_5.12′ not found error

    Quote Originally Posted by anda_skoa
    View Post

    Moving system libraries is a very bad idea.
    Every update will restore them and you are back in the previous position.

    Also things might rely on them being present

    You can set LD_LIRBARY_PATH in the «Projects» setting in QtCreator or you create a launcher script that sets LD_LIBRARY_PATH and then use this in your desktop icon instead of QtCreator

    Cheers,
    _

    Hi,

    I moved the system library files back to their original location and endited the LD_LIBRARY_PATH under the «projects» settings. It works fine. Thank you!


Similar Threads

  1. Replies: 0

    Last Post: 28th June 2018, 15:05

  2. Replies: 3

    Last Post: 19th November 2014, 20:44

  3. Replies: 4

    Last Post: 29th April 2014, 17:20

  4. Replies: 1

    Last Post: 1st May 2011, 23:11

  5. Replies: 3

    Last Post: 23rd January 2011, 13:15

Tags for this Thread

Bookmarks

Bookmarks


Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
  • BB code is On
  • Smilies are On
  • [IMG] code is On
  • [VIDEO] code is On
  • HTML code is Off

Forum Rules

Digia, Qt and their respective logos are trademarks of Digia Plc in Finland and/or other countries worldwide.

Новые и опытные пользователи Linux могут сталкиваться с ошибкой error loading shared libraries во время запуска программ, также с ней могут сталкиваться программисты и все желающие компилировать программное обеспечение в своей системе. Эта ошибка в дословном переводе означает что возникла проблема во время загрузки общей библиотеки. О том что такое библиотеки и зачем они нужны вы можете узнать из статьи библиотеки Linux.

В этой же статье мы рассмотрим что значит ошибка error while loading shared libraries более подробно, а главное, как ее решить.

Даже если вы не компилируете свои программы, то вы можете увидеть ошибку error while loading shared libraries: имя_библиотеки: cannot open shared object file: No such file or directory достаточно часто во время установки новых программ не через пакетный менеджер или программ, предназначенных для другого дистрибутива. Как я уже говорил, она возникает потому, что система не может найти библиотеку.

А вот почему ее нельзя найти и загрузить, это уже интересно. Этому может быть несколько причин:

  • Библиотека не установлена в системе;
  • Библиотека установлена, но неизвестно куда;
  • Библиотека установлена правильно, но имеет не ту версию.

При решении проблемы мы будем руководствоваться именно этими причинами и пытаться их решить.

Как исправить ошибку?

1. Библиотека не установлена

Первый вариант, тут все понятно, библиотеки просто нет в системе, поэтому мы и получаем такую ошибку. Верный способ ее решения — просто найти пакет библиотеки с помощью пакетного менеджера и установить ее. Обычно, пакеты с библиотеками называются так же, как и сами библиотеки с префиксом lib.

Например, если нам не хватает библиотеки libfuse2.so, то мы можем найти ее в Ubuntu такой командой:

sudo apt search libfuse2

Затем осталось только установить ее:

sudo apt install libfuse2

Если перед вами стоит задача собрать программу из исходников, то вам понадобится не только установить саму библиотеку, но и заголовочные файлы для нее:

sudo apt install libfuse-dev

И так для любой библиотеки. Но это не всегда помогает.

2. Библиотека находится не в том каталоге

Бывает что библиотека установлена, мы установили ее или она поставлялась вместе с программой, но ошибка как была, так и есть. Причиной этому может быть то, что загрузчик Linux не может найти библиотеку.

Поиск библиотек выполняется по всех папках, которые указаны в конфигурационных файлах /etc/ld.conf.d/. По умолчанию, это такие каталоги, как /usr/lib, /lib, /usr/lib64, /lib64. Если библиотека установлена в другой каталог, то, возможно, это и есть причина проблемы.

Вы можете посмотреть какие библиотеки сейчас доступны загрузчику с помощью команды:

ldconfig -p

Найти, где находится ваша библиотека можно с помощью команды locate. Например, нас интересует библиотека librtfreader.so:

 locate librtfreader

Теперь мы знаем, что она находится по адресу /opt/kingsoft/wps-office/office6/. А значит, для работы программы необходимо сделать чтобы загрузчик библиотек ее видел. Для этого можно добавить путь в один из файлов /etc/ld.so.conf.d/ или же в переменную LD_LIBRARY_PATH:

export LD_LIBRARY_PATH=/opt/kingsoft/wps-office/office6/

Опять же, так вы можете поставить с любой библиотекой, которая взывает ошибку. Еще один более простой метод — это просто создать символическую ссылку на нужную библиотеку в правильной папке:

ln -s /opt/kingsoft/wps-office/office6/librtfreader.so /usr/lib/librtfreader.so

3. Неверная версия библиотеки

Эта причина ошибки довольно часто встречается при использовании программ не для вашего дистрибутива. Каждая библиотека имеет дополнительную версию, так называемую ревизию, которая записывается после расширения .so. Например, libav.so.1. Так вот, номер версии меняется всякий раз, когда в библиотеку вносятся какие-либо исправления.

Часто возникает ситуация, когда в одном дистрибутиве программа собирается с зависимостью от библиотеки, например, libc.so.1, а в другом есть только libc.so.2. Отличия в большинстве случаев здесь небольшие и программа могла бы работать на второй версии библиотеки. Поэтому мы можем просто создать символическую ссылку на нее.

Например, библиотеки libusb-1.0.so.1 нет. Но зато есть libusb-1.0.so.0.1, и мы можем ее использовать:

Для этого просто создаем символическую ссылку на библиотеку:

sudo ln -s /usr/lib/libusb-1.0.so.0.1 /usr/lib/libusb-1.0.so.1

В большинстве случаев программа не заметит подмены и будет работать, как и ожидалось. Также для решения этой проблемы можно попытаться найти нужную версию библиотеки в интернете для своей архитектуры и поместить ее в папку /usr/lib/ или /usr/lib64/. Но после этого желательно обновить кэш:

sudo ldconfig

Выводы

В этой статье мы рассмотрели почему возникает ошибка Error while loading shared libraries, а также как ее решить. В большинстве случаев проблема решается довольно просто и вы получите работоспособную программу. Надеюсь, эта информация была полезной для вас.

Creative Commons License

Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .

Понравилась статья? Поделить с друзьями:
  • Error eexist file already exists mkdir
  • Error eeprom verify
  • Error eeprom disabled
  • Error eelftpserror control channel transfer error 114690
  • Error editing value regedit