私の投稿を無視してください。私はgdbがLD_LIBRARY_PATHをリセットすることを発見した1,000,000番目の人であることに違いありません。時間を無駄にしたらすみません!
ちなみに解決方法はいいえgdbで教えてください
set environment LD_LIBRARY_PATH etc.etc
なぜならこれも無視されるからです。代わりに、gdbはコードが実行される新しいシェルを起動するので、これを.profile、.tcshrc、.bashrcなどに入れてください。 gdbは従うでしょう。乾杯! ------ つぼみ、つぼみ、つぼみ--------- -- --------
この質問は長い間私を混乱させました。
ImageMagickというグラフィックパッケージを使用しようとしていますが、最も簡単なプログラムがあります。
#include <iostream>
#include <Magick++.h>
using namespace Magick;
int main( int argc, char* argv[] ) {
Magick::InitializeMagick(*argv);
std::cout << "Here I didit!" << std::endl;
}
次のように単純に実行可能ファイルを作成しました。
g++ -g -o testIM testIM.cc "Magick++-config --cxxflags --libs"
構成は以下を提供します。
localhost:~/snap> Magick++-config --cxxflags --libs
-fopenmp -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16 -fopenmp -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16 -fopenmp -MAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16 -I/usr/local/include/ImageMagick-7
-L/usr/local/lib -lMagick++-7.Q16HDRI -lMagickWand-7.Q16HDRI -lMagickCore-7.Q16HDRI
コードは十分によく実行されます。
localhost:~/snap> setenv LD_LIBRARY_PATH /usr/local/lib
localhost:~/snap> testIM
Here I didit!
しかし、デバッガにはありません!
localhost:~/snap> gdb testIM
GNU gdb (Ubuntu 8.1-0ubuntu3.1) 8.1.0.20180409-git
...omitted blurb.....
Reading symbols from testIM...done.
(gdb) run
Starting program: /home/acal/snap/testIM
/home/acal/snap/testIM: error while loading shared libraries: libMagick++-7.Q16HDRI.so.4: cannot open shared object file: No such file or directory
[Inferior 1 (process 3847) exited with code 0177]
(gdb)
ただし、ファイルはそこにあり、読み取ることができるはずです。
-rw-r--r-- 1 root root 9406966 2019-10-09 14:39 libMagick++-7.Q16HDRI.a
-rwxr-xr-x 1 root root 1419 2019-10-09 14:39 libMagick++-7.Q16HDRI.la
-rwxr-xr-x 1 root root 3979344 2019-10-09 14:47 libMagick++-7.Q16HDRI.so
-rwxr-xr-x 1 root root 3979344 2019-10-09 14:45 libMagick++-7.Q16HDRI.so.4
-rwxr-xr-x 1 root root 3979344 2019-10-09 14:39 libMagick++-7.Q16HDRI.so.4.0.0
(同じサイズの3つのファイルのうち2つが3番目のファイルへのリンクでした。
これがどのように進行しているのかご存知ですか?マシンはXubuntu 18.04です。
localhost:~/snap> ldd testIM | grep Magick
libMagick++-7.Q16HDRI.so.4 => /usr/local/lib/libMagick++-7.Q16HDRI.so.4 (0x00007f0d0a144000)
libMagickWand-7.Q16HDRI.so.6 => /usr/local/lib/libMagickWand-7.Q16HDRI.so.6 (0x00007f0d09697000)
libMagickCore-7.Q16HDRI.so.6 => /usr/local/lib/libMagickCore-7.Q16HDRI.so.6 (0x00007f0d0900c000)
ソリューションであれ、追加のデバッグであれ、どんなヒントでも提供していただきありがとうございます。