2011-07-07 4 views
0

私はCygwinでブーストライブラリを使用するアプリケーションを構築しようとしていますが、後でそれをLinuxボックスに展開します。私はブーストの最新バージョンをダウンロードした、1.46.1その後、ここに指示に従ったhttp://www.boost.org/doc/libs/1_46_1/more/getting_started/unix-variants.htmlCygwinからarm-linuxへのクロスビルドブースト

私はブートストラップとbjamプロセスを行っています。 stage/libフォルダをチェックすると、作成された.dll、.dll.a、.aファイルがあります。これらは必要なインクルードライブラリですか?私はLinux上で実行されるので、.soファイルを持つことを期待していますが、残念ながら.dllが作成されています。

私は自分のプロジェクトでEclipse IDEを使用しています。この問題を解決する方法上の任意のヘルプは非常に高く評価されるだろう

Invoking: GCC C++ Linker 
/opt/Mx800SDK/vfitc/cross/bin/arm-linux-g++ -L../lib -o'boostTest' ./boostTest.o ./include/boost/fusion/include/adapt_adt_named.o -lpthread -lboost_system -lstdc++ 
./boostTest.o(.text+0x498): In function `__static_initialization_and_destruction_0(int, int)': 
: undefined reference to `boost::system::system_category()' 
./boostTest.o(.text+0x4b0): In function `__static_initialization_and_destruction_0(int, int)': 
: undefined reference to `boost::system::system_category()' 
./boostTest.o(.text+0x4c8): In function `__static_initialization_and_destruction_0(int, int)': 
: undefined reference to `boost::system::generic_category()' 
./boostTest.o(.text+0x4e0): In function `__static_initialization_and_destruction_0(int, int)': 
: undefined reference to `boost::system::generic_category()' 
./boostTest.o(.gnu.linkonce.t._ZN5boost4asio6detail20posix_tss_ptr_createERj+0x60): In function `boost::asio::detail::posix_tss_ptr_create(unsigned int&)': 
: undefined reference to `boost::system::system_category()' 

はここ

#include <boost/asio.hpp> 
#include <boost/bind.hpp> 

int main(void) 
{ 
return 0; 
} 

コンパイルした後、私はエラーをリンクしてしまった私のテストプロジェクトです。あなたはcygwinの命令に従わないもの、のlinux-アーム用にビルド横断しようとしている

おかげ

+0

私はあなたがやっている十字架の建物を反映したタイトルを変更しました。 –

答えて

1

。代わりにcross buildingを実行してください。

+0

私は次のコマンドを発行しました:./bjam target-os = linux、生成された.aファイルをlibフォルダにコピーして、残念ながら同じリンクエラーが発生しました:( – neztreh

+0

'user-configコンパイラとして '/ opt/Mx800SDK/vfitc/cross/bin/arm-linux-g ++'を使用してください。 –

+0

ありがとうgcc:arm:/ opt/Mx800SDK/vfitc/cross/bin/arm-linux-g ++を使用して、次に./bjam toolset = gcc-arm targetを実行して、user-config.jamにこの行を追加しました。 -os = linux。もう一度、ありがとう、乾杯! – neztreh

関連する問題