0

Eclipse の autotools プラグインと、ダウンロードした C++ プロジェクトで苦労しています。

私の目標はアーム プロセッサのクロスコンパイルであるため、プロジェクトは既に autotools で動作するように構成されていますが、クロスコンパイルしようとすると次の問題が発生します。

In file included from /usr/include/c++/4.6/bits/stl_algo.h:61:0,
                 from /usr/include/c++/4.6/algorithm:63,
                 from dtntracepath.cpp:17:
/usr/include/c++/4.6/cstdlib:119:11: error: ‘::malloc’ has not been declared

これに気付いたプロジェクトの構成出力をチェックアウトしました

...
checking for stdlib.h... (cached) yes
checking for GNU libc compatible malloc... no
checking for memset... yes
...

オプションを追加してLinuxターミナルから修正する方法を知っています

export ac_cv_func_malloc_0_nonnull=yes 

ただし、プロジェクトの設定が利用できないため、Eclipse または autotools のプラグインを介してではありません。教えていただけますか?

敬具、

前もって感謝します

PS: autotools プラグインで設定したパラメーターは次のとおりです。

-Command: configure  CFLAGS="-m32" LDFLAGS="-m32"  CC=/home/t/s/arm-mv5sft-linux-gnueabi/SW3.2p1/bin/arm-mv5sft-linux-gnueabi-gcc CC=c99
-All options :  --host=arm-mv5sft-linux-gnueabi --build=i686-linux --target=arm-mv5sft-linux-gnueabi --with-sysroot=/home/t/s/arm-mv5sft-linux-gnueabi/SW3.2p1/arm-mv5sft-linux-gnueabi/

編集:

次のconfigureを使用してldav1sのアドバイスを試しました

configure CC=/home/t/s/arm-mv5sft-linux-gnueabi/SW3.2p1/bin/arm-mv5sft-linux-gnueabi-gcc CXX=/home/t/s/arm-mv5sft-linux-gnueabi/SW3.2p1/bin/arm-mv5sft-linux-gnueabi-g++  CFLAGS="-m32" LDFLAGS="-m32"  

これらのエラーが発生します

Command-line environment variables:
     LDFLAGS="-m32" LDFLAGS="-m32" CC="/home/t/s/arm-mv5sft-linux-gnueabi/SW3.2p1/bin/arm-mv5sft-linux-gnueabi-gcc" CXX="/home/t/s/arm-mv5sft-linux-gnueabi/SW3.2p1/bin/arm-mv5sft-linux-gnueabi-g++"

sh -c /home/t/ibrdtn/ibrdtn-tools-0.8.0/configure      ++ --host=arm-mv5sft-linux-gnueabi --with-sysroot=/home/t/s/arm-mv5sft-linux-gnueabi/SW3.2p1/arm-mv5sft-linux-gnueabi/ 
configure: WARNING: you should use --build, --host, --target
configure: WARNING: invalid host type: ++
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for arm-mv5sft-linux-gnueabi-strip... no
checking for arm-mv5sft-linux-gnueabi-strip... no
checking for strip... strip
configure: WARNING: using cross tools not prefixed with host triplet
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
Invalid configuration `++': machine `++' not recognized
configure: error: /bin/bash ./config.sub ++ failed
configure: error: /bin/bash ./config.sub ++ failed
checking build system type... 

Configuration failed with error

EDIT2 Eclipseを再インストールした後、最初のエディションの++エラーはなくなりました。次の構成を使用すると、

configure CC=/home/t/s/arm-mv5sft-linux-gnueabi/SW3.2p1/bin/arm-mv5sft-linux-gnueabi-gcc CXX=/home/t/s/arm-mv5sft-linux-gnueabi/SW3.2p1/bin/arm-mv5sft-linux-gnueabi-g++ CFLAGS="-m32" LDFLAGS="-m32"--host=arm-mv5sft-linux-gnueabi --build=i686-linux --target=arm-mv5sft-linux-gnueabi

適切にコンパイルされていました。いくつかの arm/le 出力を見ましたが、ライブラリの 1 つに関するこのエラーが発生しました。

make[3]: Entering directory `/home/t/ibrdtn/ibrcommon-0.8.0/ibrcommon/net'
  CXX    tcpclient.lo
  CXX    tcpserver.lo
  CXX    tcpstream.lo
  CXX    udpsocket.lo
  CXX    MulticastSocket.lo
  CXX    UnicastSocket.lo
  CXX    stopandwait.lo
  CXX    vsocket.lo
  CXX    vinterface.lo
  CXX    vaddress.lo
  CXX    LinkManager.lo
In file included from LinkManager.cpp:16:
../../ibrcommon/net/NetLinkManager.h:19:29: error: netlink/netlink.h: No such file or directory
../../ibrcommon/net/NetLinkManager.h:20:26: error: netlink/attr.h: No such file or directory
make[3]: *** [LinkManager.lo] Error 1
make[3]: Leaving directory `/home/t/ibrdtn/ibrcommon-0.8.0/ibrcommon/net'
make[2]: Leaving directory `/home/t/ibrdtn/ibrcommon-0.8.0/ibrcommon'
make[2]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/t/ibrdtn/ibrcommon-0.8.0/ibrcommon'
make[1]: *** [all] Error 2
make: *** [all-recursive] Error 1

**** Build Finished ****
4

1 に答える 1

0

CXXへの引数の一部としてC++ コンパイラ ( ) を設定しておらず、C コンパイラ ( )configureを乗算定義していませんCC

/usr/includeクロスコンパイラ用のコンパイラ ( 内のもの) ではなく、ビルド マシン用のコンパイラ ( 内のもの) を選択しているようです/home/t/s/arm-mv5sft-linux-gnueabi/SW3.2p1

于 2013-02-04T19:58:10.290 に答える