0

arm-mv5sft-linux-gnueabi プロセッサ用にいくつかの C++ プロジェクトをクロスコンパイルしようとしています。このプロジェクトの ./configure を次のように設定しました。

./configure --build=i686-linux --host=arm-mv5sft-linux-gnueabi --target=arm-mv5sft-linux-gnueabi CC=~/s/arm-mv5sft-linux-gnueabi/SW3.2p1/bin/arm-mv5sft-linux-gnueabi-gcc CXX=~/s/arm-mv5sft-linux-gnueabi/SW3.2p1/bin/arm-mv5sft-linux-gnueabi-g++ LD=~/s/arm-mv5sft-linux-gnueabi/SW3.2p1/arm-mv5sft-linux-gnueabi/bin/arm-mv5sft-linux-gnueabi-ld LDFLAGS=-L/usr/include/libdaemon --with-sysroot=/home/thales/s/arm-mv5sft-linux-gnueabi/SW3.2p1/arm-mv5sft-linux-gnueabi --prefix=/justInstalled --disable-shared --enable-threads=posix --enable-long-long --enable-target-optspace --disable-nls --with-float=soft --disable-multilib --enable-symvers=gn

構成は成功しましたが、作成すると包含エラーが発生しました

libtool: link: warning: library `/home/j/s/arm-mv5sft-linux-gnueabi/SW3.2p1/bin/../lib/gcc/arm-mv5sft-linux-gnueabi/4.3.2/../../../../arm-mv5sft-linux-gnueabi/lib/libstdc++.la' was moved.
  CXX    Main.o
Main.cpp:28:30: error: libdaemon/daemon.h: No such file or directory
Main.cpp: In function 'int __daemon_run()':
Main.cpp:175: error: 'daemon_retval_send' was not declared in this scope
.
.
.
make[1]: Leaving directory `/home/j/ibrdtn-svn/daemon'
make: *** [all-recursive] Error 1

ファイル Main.cpp に行って何が起こっているかを確認すると、libdeamon のインクルードについて不平を言っています

...
#include "config.h"
#include "Configuration.h"
#include <ibrcommon/Logger.h>
#include <ibrcommon/data/File.h>

#ifdef HAVE_LIBDAEMON
#include <libdaemon/daemon.h>
#endif

#include <string.h>
#include <csignal>
#include <set>
...

libdeamon をインストールしたことを確認しました

@ubuntu:~$ pkg-config --libs libdaemon
-ldaemon
@ubuntu:~$locate libdaemon
/usr/include/libdaemon
/usr/include/libdaemon/daemon.h
/usr/include/libdaemon/dexec.h
/usr/include/libdaemon/dfork.h
/usr/include/libdaemon/dlog.h
/usr/include/libdaemon/dnonblock.h
/usr/include/libdaemon/dpid.h
/usr/include/libdaemon/dsignal.h
/usr/lib/libdaemon.a
/usr/lib/libdaemon.so
/usr/lib/libdaemon.so.0
/usr/lib/libdaemon.so.0.5.0
/usr/lib/pkgconfig/libdaemon.pc

なぜ包含が間違っているのですか?? を使用して含めようとしました

./configure (as before) LDFLAGS=-llibdeamon (as before)

しかし、構成はエラーがあることを教えてくれるので、conf.log を読む必要があります。

/home/j/s/arm-mv5sft-linux-gnueabi/SW3.2p1/bin/../lib/gcc/arm-mv5sft-linux-gnueabi/4.3.2/../../../../arm-mv5sft-linux-gnueabi/bin/ld: cannot find -llibdeamon
collect2: ld returned 1 exit status

どんなアイデアでも大歓迎です!

前もって感謝します、

よろしく

編集

libdaemon ライブラリをクロスコンパイルしようとしましたが、達成できませんでした。libdaemon のソースリンクをダウンロードし、解凍した後、コードがあるディレクトリに移動して実行しました。 ./configure --build=i686-linux --host=arm-mv5sft-linux-gnueabi --target=arm-mv5sft-linux-gnueabi CC=~/s/arm-mv5sft-linux-gnueabi/SW3.2p1/bin/arm-mv5sft-linux-gnueabi-gcc CXX=~/s/arm-mv5sft-linux-gnueabi/SW3.2p1/bin/arm-mv5sft-linux-gnueabi-g++ LD=/home/t/s/arm-mv5sft-linux-gnueabi/SW3.2p1/arm-mv5sft-linux-gnueabi/bin/arm-mv5sft-linux-gnueabi-ld --prefix=/usr

最後に、ライブラリをインストールします

make install DESTDIR=/home/t/libdaemon-0.14

ただし、このようにメイン プロジェクトの構成を再起動すると、

./configure --build=i686-linux --host=arm-mv5sft-linux-gnueabi --target=arm-mv5sft-linux-gnueabi CC=~/s/arm-mv5sft-linux-gnueabi/SW3.2p1/bin/arm-mv5sft-linux-gnueabi-gcc CXX=~/s/arm-mv5sft-linux-gnueabi/SW3.2p1/bin/arm-mv5sft-linux-gnueabi-g++ LD=/home/t/s/arm-mv5sft-linux-gnueabi/SW3.2p1/arm-mv5sft-linux-gnueabi/bin/arm-mv5sft-linux-gnueabi-ld CCPFLAGS=-I/home/t/libdaemon-0.14/usr/include LDFLAGS=-L/home/t/libdaemon-0.14/lib --with-sysroot=/home/t/s/arm-mv5sft-linux-gnueabi/SW3.2p1/arm-mv5sft-linux-gnueabi --prefix=/justInstalled --disable-shared --enable-threads=posix --enable-long-long --enable-target-optspace --disable-nls --with-float=soft --disable-multilib --enable-symvers=gnu

この投稿の冒頭でも同じエラーが表示されます...何が間違っていますか?

前もって感謝します

EDIT2:

私は今問題だと思います.libdeamonはアーム用にクロスコンパイルされていません.なぜライブラリlibdeamonをクロスコンパイルした後、ライブラリがアーム用にクロスコンパイルされていないことを確認しました.それはまだビルド用です.見たままのインテル

:~/libdaemon-0.14$ file -F usr/*/*.*
usr/lib/libdaemon.lausr/lib/libdaemon.a       libtool library file, 
usr/lib/libdaemon.sousr/lib/libdaemon.a       symbolic link to `libdaemon.so.0.5.0'
usr/lib/libdaemon.so.0usr/lib/libdaemon.a     symbolic link to `libdaemon.so.0.5.0'
usr/lib/libdaemon.so.0.5.0usr/lib/libdaemon.a ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, BuildID[sha1]=0xe4959941fb153e1dec5ec84f798dc32928219ae2, not stripped

その「クロスコンパイルされた」ライブラリでメインプロジェクトをコンパイルしようとすると、これが得られます

libtool: link: warning: library `/home/j/s/arm-mv5sft-linux-gnueabi/SW3.2p1/bin/../lib/gcc/arm-mv5sft-linux-gnueabi/4.3.2/../../../../arm-mv5sft-linux-gnueabi/lib/libstdc++.la' was moved.
/home/j/libdaemon-0.14/usr/lib/libdaemon.so: could not read symbols: File in wrong format
collect2: ld returned 1 exit status
make[3]: *** [dtnd] Error 1

それで、なにかお手伝いできますか??

4

0 に答える 0