2

root アクセス権なしで Linux サーバーに PCL (ポイント クラウド ライブラリ) をインストールする必要があります。次に、ソースをダウンロードして依存関係を確認しました。さあ、いくぞ...

これらは私が見つけた依存関係です:

PCL
- ブースト
----ZLIB
----BZIP
--エイゲン
--フラン
----HDF5
----LIBUSB
------UDEV
--------グリブ
----------LIBFFI
----------ZLIB 
--VTK

ソースから glib をコンパイルする必要があります。Glib には FFI ライブラリが必要なので、それらをダウンロードしてコンパイルし、インストールします。

/home/franz/Downloads/libffi-3.0.13/installed

次に、これらの変数を設定します。

    LD_LIBRARY_PATH=/home/franz/Downloads/libffi-3.0.13/installed/lib
    LIBFFI_CFLAGS="-I/home/franz/Downloads/libffi-3.0.13/installed/lib/libffi-3.0.13/include" LIBFFI_LIBS="-lffi -L/home/franz/Downloads/libffi-3.0.13/インストール済み/lib"

次に、./configure と make を実行します。これらのエラーが発生しました:

make[4]: ディレクトリ `/home/franz/Downloads/glib-2.37.5/gobject' に入ります
/bin/bash ../libtool --tag=CC --mode=link gcc -Wall -Wstrict-prototypes -Werror=ステートメント後の宣言 -Werror=missing-prototypes -Werror=暗黙の関数宣言 -Werror= pointer-arith -Werror=init-self -Werror=format-security -Werror=format=2 -Werror=missing-include-dirs -g -O2 -o gobject-query gobject-query.o ./libgobject-2.0.la ../glib/libglib-2.0.la
libtool: リンク: gcc -Wall -Wstrict-prototypes -Werror=ステートメント後の宣言 -Werror=missing-prototypes -Werror=暗黙の関数宣言 -Werror=ポインター演算 -Werror=init-self -Werror=format- security -Werror=format=2 -Werror=missing-include-dirs -g -O2 -o .libs/gobject-query gobject-query.o ./.libs/libgobject-2.0.so -L/home/franz/Downloads /libffi-3.0.13/installed/lib /home/franz/Downloads/glib-2.37.5/glib/.libs/libglib-2.0.so ../glib/.libs/libglib-2.0.so -lpthread -lrt -Wl,-rpath -Wl,/home/franz/Downloads/glib-2.37.5/installed/lib
./.libs/libgobject-2.0.so: `ffi_type_void' への未定義の参照
./.libs/libgobject-2.0.so: `ffi_type_double' への未定義の参照
./.libs/libgobject-2.0.so: `ffi_prep_cif' への未定義の参照
./.libs/libgobject-2.0.so: `ffi_type_sint32' への未定義の参照
./.libs/libgobject-2.0.so: `ffi_type_float' への未定義の参照
./.libs/libgobject-2.0.so: `ffi_type_uint64' への未定義の参照
./.libs/libgobject-2.0.so: `ffi_type_sint64' への未定義の参照
./.libs/libgobject-2.0.so: `ffi_type_pointer' への未定義の参照
./.libs/libgobject-2.0.so: `ffi_type_uint32' への未定義の参照
./.libs/libgobject-2.0.so: `ffi_call' への未定義の参照

次に、configure で LIBFFI_CFLAGS/LIBS を含めて設定したいライブラリが make に存在しないことを確認したので、CC 変数を変更して、コンパイラに私のライブラリを強制的に使用させました。

LIBFFI_CFLAGS="-I/home/franz/Downloads/libffi-3.0.13/installed/lib/libffi-3.0.13/include" LIBFFI_LIBS="-lffi -L/home/franz/Downloads/libffi-3.0.13/installed/lib" ZLIB_CFLAGS="-I/home/franz/Downloads/zlib-1.2.8/installed/include" ZLIB_LIBS="-L/home/franz/Downloads/zlib-1.2.8/installed/lib" CC="gcc $LIBFFI_CFLAGS $LIBFFI_LIBS" CXX="/usr/bin/g++-4.4 $LIBFFI_CFLAGS $LIBFFI_LIBS" ./configure --prefix=`pwd`/installed

そして、作ります

このようにして、make プロセスで gcc の代わりに gcc -I... -lffi -L... を取得します。しかし、今は別の場所で同じエラーが発生します:

make[4]: ディレクトリ `/home/franz/Downloads/glib-2.37.5/gio' に入ります
/bin/bash ../libtool --tag=CC --mode=link gcc -I/home/franz/Downloads/libffi-3.0.13/installed/lib/libffi-3.0.13/include -lffi -L/ home/franz/Downloads/libffi-3.0.13/installed/lib -Wall -Wstrict-prototypes -Werror=declaration-after-statement -Werror=missing-prototypes -Werror=implicit-function-declaration -Werror=pointer-arith - Werror=init-self -Werror=format-security -Werror=format=2 -Werror=missing-include-dirs -g -O2 -o gio-querymodules gio-querymodules.o ../glib/libglib-2.0.la . ./gobject/libgobject-2.0.la ../gmodule/libgmodule-2.0.la libgio-2.0.la

libtool: リンク: gcc -I/home/franz/Downloads/libffi-3.0.13/installed/lib/libffi-3.0.13/include -Wall -Wstrict-prototypes -Werror=declaration-after-statement -Werror=missing-プロトタイプ -Werror=暗黙の関数宣言 -Werror=ポインタ演算 -Werror=init-self -Werror=フォーマットセキュリティ -Werror=フォーマット=2 -Werror=missing-include-dirs -g -O2 -o .libs/ gio-querymodules gio-querymodules.o -L/home/franz/Downloads/libffi-3.0.13/installed/lib ../glib/.libs/libglib-2.0.so ../gobject/.libs/libgobject-2.0 .so ../gmodule/.libs/libgmodule-2.0.so ./.libs/libgio-2.0.so -L/home/franz/Downloads/zlib-1.2.8/installed/lib /home/franz/Downloads/ glib-2.37.5/gobject/.libs/libgobject-2.0.so /home/franz/Downloads/glib-2.37.5/gmodule/.libs/libgmodule-2.0.so -ldl /home/franz/Downloads/glib- 2.37.5/glib/.libs/libglib-2.0.so -lpthread -lrt /home/franz/Downloads/libffi-3.0.13/installed/lib/../lib/libffi.so -lresolv -Wl,-rpath -Wl,/home/franz/Downloads/glib-2.37.5/installed/lib -Wl,-rpath -Wl,/home /franz/Downloads/libffi-3.0.13/installed/lib/../lib
../gobject/.libs/libgobject-2.0.so: `ffi_type_void' への未定義の参照
../gobject/.libs/libgobject-2.0.so: `ffi_type_double' への未定義の参照
../gobject/.libs/libgobject-2.0.so: `ffi_prep_cif' への未定義の参照
../gobject/.libs/libgobject-2.0.so: `ffi_type_sint32' への未定義の参照
../gobject/.libs/libgobject-2.0.so: `ffi_type_float' への未定義の参照
../gobject/.libs/libgobject-2.0.so: `ffi_type_uint64' への未定義の参照
../gobject/.libs/libgobject-2.0.so: `ffi_type_sint64' への未定義の参照
../gobject/.libs/libgobject-2.0.so: `ffi_type_pointer' への未定義の参照
../gobject/.libs/libgobject-2.0.so: `ffi_type_uint32' への未定義の参照
../gobject/.libs/libgobject-2.0.so: `ffi_call' への未定義の参照

問題は、この場合、ライブラリが存在することです (表示されます-lffi -L<ffi_libs_path>が、エラーは以前と同じように見えます)。

この仕事を得る方法はありますか?root アクセス権がないため、ライブラリをインストールできません。任意の提案をいただければ幸いです。

4

2 に答える 2

4

使用する

export LIBFFI_LIBS="-L/your/path/to-ffi libraries/ -lffi"

于 2015-04-22T07:47:30.287 に答える