9

コンソールからアプリケーションをデバッグしようとしています。

> gdb ./Geod

次にgdbで

(gdb) run

出力が得られます:

error while loading shared libraries: libGeo.Cored.so.1: 
cannot open shared object file: No such file or directory

システムは次のように構成されています。

> echo $LD_LIBRARY_PATH
    /home/paceholder/projects/geo/lib/debug

> ls $LD_LIBRARY_PATH
    libGeo.Cored.so.1.0.0
    libGeo.Cored.so 
    libGeo.Cored.so.1
    libGeo.Cored.so.1.0


(gdb) show solib-search-path
    The search path for loading non-absolute shared library symbol files is
    /home/paceholder/projects/geo/lib/debug.
4

2 に答える 2

12

gdb でコマンドを使用set environmentして、デバッグするプログラムを起動するために gdb が使用する環境を変更できます。gdb ヘルプからの抜粋:

(gdb) help set environment 
Set environment variable value to give the program.
Arguments are VAR VALUE where VAR is variable name and VALUE is value.
VALUES of environment variables are uninterpreted strings.
This does not affect the program until the next "run" command.

LD_LIBRARY_PATH:

(gdb) set environment LD_LIBRARY_PATH /home/paceholder/projects/geo/lib/debug
于 2013-11-27T09:57:55.883 に答える
3

error while loading shared libraries: libGeo.Cored.so.1

次の 2 つの原因が考えられます。

  • 忘れていましたexport LD_LIBRARY_PATH-- GDB は新しいシェルを作成し、エクスポートされていない変数はその新しいシェルにコピーされません
  • リセットするものがあり~/.bashrcますLD_LIBRARY_PATH(そうしないでください!)

上記のいずれかが真であることを確認するには、次のようにします。

(gdb) shell
$ echo $LD_LIBRARY_PATH
$ ls $LD_LIBRARY_PATH
于 2013-04-27T17:08:57.773 に答える