fedoraでのboostのクロスコンパイルについて
Posted: 2011年7月23日(土) 03:20
fedora15でmingwによるクロスコンパイルを試しております。
boostを使ったプログラムではundefine referenceと言うエラー
が出てしまいます。(linuxのネイティブな環境では問題がないものです。)
プログラムの例としては(unit_test.cpp)
#define BOOST_AUTO_TEST_MAIN
#include <boost/test/auto_unit_test.hpp>
#include <boost/test/floating_point_comparison.hpp>
#include <boost/format.hpp>
using namespace boost;
BOOST_AUTO_TEST_CASE( test )
{
BOOST_CHECK_EQUAL( 1.0, 1.0);
}
と言うよなもので、コンパイルのコマンドは
i686-pc-mingw32-g++ -DBOOST_TEST_DYN_LINK -lboost_unit_test_framework-gcc45-1_46 unit_test.cpp
としております。
エラーは
/tmp/ccnHIW9c.o:unit_test.cpp:(.text+0x42): undefined reference to `__imp___ZN5boost9unit_test14unit_test_mainEPFbvEiPPc'
/tmp/ccnHIW9c.o:unit_test.cpp:(.text+0xf7): undefined reference to `__imp___ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEjS4_'
/tmp/ccnHIW9c.o:unit_test.cpp:(.text+0x30f): undefined reference to `__imp___ZN5boost9unit_test9ut_detail24auto_test_unit_registrarC1EPNS0_9test_caseEm'
/tmp/ccnHIW9c.o:unit_test.cpp:(.text$_ZN5boost9unit_test13test_observerD2Ev[boost::unit_test::test_observer::~test_observer()]+0x7): undefined reference to `__imp___ZTVN5boost9unit_test13test_observerE'
と言うようなものです。
boostのバグもしくはシステムの不具合ではないかと推測しておりますが、解決できないと非常に不便な問題です。
もし、成功され方がおられましたら、アドバイスをいただけると助かります。
boostを使ったプログラムではundefine referenceと言うエラー
が出てしまいます。(linuxのネイティブな環境では問題がないものです。)
プログラムの例としては(unit_test.cpp)
#define BOOST_AUTO_TEST_MAIN
#include <boost/test/auto_unit_test.hpp>
#include <boost/test/floating_point_comparison.hpp>
#include <boost/format.hpp>
using namespace boost;
BOOST_AUTO_TEST_CASE( test )
{
BOOST_CHECK_EQUAL( 1.0, 1.0);
}
と言うよなもので、コンパイルのコマンドは
i686-pc-mingw32-g++ -DBOOST_TEST_DYN_LINK -lboost_unit_test_framework-gcc45-1_46 unit_test.cpp
としております。
エラーは
/tmp/ccnHIW9c.o:unit_test.cpp:(.text+0x42): undefined reference to `__imp___ZN5boost9unit_test14unit_test_mainEPFbvEiPPc'
/tmp/ccnHIW9c.o:unit_test.cpp:(.text+0xf7): undefined reference to `__imp___ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEjS4_'
/tmp/ccnHIW9c.o:unit_test.cpp:(.text+0x30f): undefined reference to `__imp___ZN5boost9unit_test9ut_detail24auto_test_unit_registrarC1EPNS0_9test_caseEm'
/tmp/ccnHIW9c.o:unit_test.cpp:(.text$_ZN5boost9unit_test13test_observerD2Ev[boost::unit_test::test_observer::~test_observer()]+0x7): undefined reference to `__imp___ZTVN5boost9unit_test13test_observerE'
と言うようなものです。
boostのバグもしくはシステムの不具合ではないかと推測しておりますが、解決できないと非常に不便な問題です。
もし、成功され方がおられましたら、アドバイスをいただけると助かります。