2016-03-28 15 views
1

Ich habe ein Problem beim Kompilieren von Transceiver52M für OpenBTS, ich habe ein Ettus B200 Peripheriegerät, und habe UHD Version UHD_003.010.git-156-g2d68f228 installiert.Ettus UHD, kompilieren Transceiver52M

Aber ich bekomme die folgenden Fehler, sobald ich zum Übersetzen von Transceiver52M; die Einreichung Linien sind (die vollständige Build-Ausgabe ist here):

libtool: link: g++ -g -O2 -Wall -pthread -rdynamic -DTIMESTAMP_ISO=\"2016-03-28T20:57:00\" -o transceiver runTransceiver.o /usr/local/lib/libuhd.so ./.libs/libtransceiver.a ../GSM/.libs/libGSM.a ../C 
ommonLibs/.libs/libcommon.a -ldl /usr/lib/x86_64-linux-gnu/libsqlite3.so -la53 -lzmq -pthread 
./.libs/libtransceiver.a(UHDDevice.o): In function `uhd_device::stop()': 
/home/openbts/dev/openbts/Transceiver52M/UHDDevice.cpp:673: undefined reference to `uhd::stream_cmd_t::stream_cmd_t(uhd::stream_cmd_t::stream_mode_t const&)' 
./.libs/libtransceiver.a(UHDDevice.o): In function `uhd::usrp::multi_usrp::set_rx_gain(double, unsigned long)': 
/usr/local/include/uhd/usrp/multi_usrp.hpp:500: undefined reference to `uhd::usrp::multi_usrp::ALL_GAINS' 
./.libs/libtransceiver.a(UHDDevice.o): In function `uhd::usrp::multi_usrp::set_tx_gain(double, unsigned long)': 
/usr/local/include/uhd/usrp/multi_usrp.hpp:786: undefined reference to `uhd::usrp::multi_usrp::ALL_GAINS' 
./.libs/libtransceiver.a(UHDDevice.o): In function `uhd_device::writeSamples(short*, int, bool*, unsigned long long, bool)': 
/home/openbts/dev/openbts/Transceiver52M/UHDDevice.cpp:810: undefined reference to `uhd::tx_metadata_t::tx_metadata_t()' 
/home/openbts/dev/openbts/Transceiver52M/UHDDevice.cpp:814: undefined reference to `uhd::time_spec_t::from_ticks(long long, double)' 
/home/openbts/dev/openbts/Transceiver52M/UHDDevice.cpp:847: undefined reference to `uhd::get_version_string()' 
./.libs/libtransceiver.a(UHDDevice.o): In function `uhd_device::uhd_device(int, bool)': 
/home/openbts/dev/openbts/Transceiver52M/UHDDevice.cpp:343: undefined reference to `uhd::time_spec_t::time_spec_t(long, double)' 
./.libs/libtransceiver.a(UHDDevice.o): In function `uhd_device::parse_dev_type()': 
/home/openbts/dev/openbts/Transceiver52M/UHDDevice.cpp:479: undefined reference to `uhd::device::get_tree() const' 
/home/openbts/dev/openbts/Transceiver52M/UHDDevice.cpp:480: undefined reference to `uhd::fs_path::fs_path(char const*)' 
./.libs/libtransceiver.a(UHDDevice.o): In function `rx_metadata_t': 
/usr/local/include/uhd/types/metadata.hpp:37: undefined reference to `uhd::time_spec_t::time_spec_t(double)' 
./.libs/libtransceiver.a(UHDDevice.o): In function `uhd::rx_metadata_t::reset()': 
/usr/local/include/uhd/types/metadata.hpp:45: undefined reference to `uhd::time_spec_t::time_spec_t(double)' 
./.libs/libtransceiver.a(UHDDevice.o): In function `uhd_device::restart(uhd::time_spec_t)': 
/home/openbts/dev/openbts/Transceiver52M/UHDDevice.cpp:629: undefined reference to `uhd::stream_cmd_t::stream_cmd_t(uhd::stream_cmd_t::stream_mode_t const&)' 
/home/openbts/dev/openbts/Transceiver52M/UHDDevice.cpp:637: undefined reference to `uhd::stream_cmd_t::stream_cmd_t(uhd::stream_cmd_t::stream_mode_t const&)' 
./.libs/libtransceiver.a(UHDDevice.o): In function `uhd_device::start()': 
/home/openbts/dev/openbts/Transceiver52M/UHDDevice.cpp:654: undefined reference to `uhd::msg::register_handler(void (* const&)(uhd::msg::type_t, std::string const&))' 
/home/openbts/dev/openbts/Transceiver52M/UHDDevice.cpp:660: undefined reference to `uhd::time_spec_t::time_spec_t(double)' 
/home/openbts/dev/openbts/Transceiver52M/UHDDevice.cpp:663: undefined reference to `uhd::time_spec_t::get_real_secs() const' 
./.libs/libtransceiver.a(UHDDevice.o): In function `smpl_buf::avail_smpls(uhd::time_spec_t) const': 
/home/openbts/dev/openbts/Transceiver52M/UHDDevice.cpp:987: undefined reference to `uhd::time_spec_t::to_ticks(double) const' 
./.libs/libtransceiver.a(UHDDevice.o): In function `smpl_buf::read(void*, unsigned long, uhd::time_spec_t)': 
/home/openbts/dev/openbts/Transceiver52M/UHDDevice.cpp:1033: undefined reference to `uhd::time_spec_t::to_ticks(double) const' 
./.libs/libtransceiver.a(UHDDevice.o): In function `smpl_buf::write(void*, unsigned long, uhd::time_spec_t)': 
/home/openbts/dev/openbts/Transceiver52M/UHDDevice.cpp:1074: undefined reference to `uhd::time_spec_t::to_ticks(double) const' 
./.libs/libtransceiver.a(UHDDevice.o): In function `uhd_device::init_gains()': 
/home/openbts/dev/openbts/Transceiver52M/UHDDevice.cpp:359: undefined reference to `uhd::meta_range_t::meta_range_t()' 
./.libs/libtransceiver.a(UHDDevice.o): In function `uhd::usrp::multi_usrp::get_tx_gain_range(unsigned long)': 
/usr/local/include/uhd/usrp/multi_usrp.hpp:838: undefined reference to `uhd::usrp::multi_usrp::ALL_GAINS' 
./.libs/libtransceiver.a(UHDDevice.o): In function `uhd_device::init_gains()': 
/home/openbts/dev/openbts/Transceiver52M/UHDDevice.cpp:362: undefined reference to `uhd::meta_range_t::start() const' 
/home/openbts/dev/openbts/Transceiver52M/UHDDevice.cpp:363: undefined reference to `uhd::meta_range_t::stop() const' 
/home/openbts/dev/openbts/Transceiver52M/UHDDevice.cpp:366: undefined reference to `uhd::meta_range_t::start() const' 
/home/openbts/dev/openbts/Transceiver52M/UHDDevice.cpp:367: undefined reference to `uhd::meta_range_t::stop() const' 
./.libs/libtransceiver.a(UHDDevice.o): In function `uhd_device::setTxFreq(double)': 
/home/openbts/dev/openbts/Transceiver52M/UHDDevice.cpp:862: undefined reference to `uhd::tune_request_t::tune_request_t(double)' 
/home/openbts/dev/openbts/Transceiver52M/UHDDevice.cpp:863: undefined reference to `uhd::tune_result_t::to_pp_string() const' 
./.libs/libtransceiver.a(UHDDevice.o): In function `uhd_device::setRxFreq(double)': 
/home/openbts/dev/openbts/Transceiver52M/UHDDevice.cpp:871: undefined reference to `uhd::tune_request_t::tune_request_t(double)' 
/home/openbts/dev/openbts/Transceiver52M/UHDDevice.cpp:872: undefined reference to `uhd::tune_result_t::to_pp_string() const' 
./.libs/libtransceiver.a(UHDDevice.o): In function `uhd_device::open(std::string const&, bool)': 
/home/openbts/dev/openbts/Transceiver52M/UHDDevice.cpp:531: undefined reference to `uhd::device_addr_t::device_addr_t(std::string const&)' 
/home/openbts/dev/openbts/Transceiver52M/UHDDevice.cpp:532: undefined reference to `uhd::device::find(uhd::device_addr_t const&, uhd::device::device_filter_t)' 
/home/openbts/dev/openbts/Transceiver52M/UHDDevice.cpp:539: undefined reference to `uhd::device_addr_t::to_string() const' 
/home/openbts/dev/openbts/Transceiver52M/UHDDevice.cpp:541: undefined reference to `uhd::usrp::multi_usrp::make(uhd::device_addr_t const&)' 
./.libs/libtransceiver.a(UHDDevice.o): In function `stream_args_t': 
/usr/local/include/uhd/stream.hpp:63: undefined reference to `uhd::device_addr_t::device_addr_t(std::string const&)' 
./.libs/libtransceiver.a(UHDDevice.o): In function `uhd_device::open(std::string const&, bool)': 
/home/openbts/dev/openbts/Transceiver52M/UHDDevice.cpp:543: undefined reference to `uhd::device_addr_t::to_string() const' 
./.libs/libtransceiver.a(UHDDevice.o): In function `uhd_device::str_code(uhd::rx_metadata_t)': 
/home/openbts/dev/openbts/Transceiver52M/UHDDevice.cpp:925: undefined reference to `uhd::time_spec_t::get_real_secs() const' 
./.libs/libtransceiver.a(UHDDevice.o): In function `uhd_device::check_rx_md_err(uhd::rx_metadata_t&, long)': 
/home/openbts/dev/openbts/Transceiver52M/UHDDevice.cpp:689: undefined reference to `uhd::time_spec_t::time_spec_t(double)' 
/home/openbts/dev/openbts/Transceiver52M/UHDDevice.cpp:716: undefined reference to `uhd::operator<(uhd::time_spec_t const&, uhd::time_spec_t const&)' 
/home/openbts/dev/openbts/Transceiver52M/UHDDevice.cpp:719: undefined reference to `uhd::time_spec_t::get_real_secs() const' 
/home/openbts/dev/openbts/Transceiver52M/UHDDevice.cpp:718: undefined reference to `uhd::time_spec_t::get_real_secs() const' 
./.libs/libtransceiver.a(UHDDevice.o): In function `uhd_device::readSamples(short*, int, bool*, unsigned long long, bool*, unsigned int*)': 
/home/openbts/dev/openbts/Transceiver52M/UHDDevice.cpp:732: undefined reference to `uhd::time_spec_t::time_spec_t(double)' 
./.libs/libtransceiver.a(UHDDevice.o): In function `rx_metadata_t': 
/usr/local/include/uhd/types/metadata.hpp:37: undefined reference to `uhd::time_spec_t::time_spec_t(double)' 
./.libs/libtransceiver.a(UHDDevice.o): In function `uhd::rx_metadata_t::reset()': 
/usr/local/include/uhd/types/metadata.hpp:45: undefined reference to `uhd::time_spec_t::time_spec_t(double)' 
./.libs/libtransceiver.a(UHDDevice.o): In function `uhd_device::readSamples(short*, int, bool*, unsigned long long, bool*, unsigned int*)': 
/home/openbts/dev/openbts/Transceiver52M/UHDDevice.cpp:745: undefined reference to `uhd::time_spec_t::from_ticks(long long, double)' 
/home/openbts/dev/openbts/Transceiver52M/UHDDevice.cpp:746: undefined reference to `uhd::time_spec_t::get_real_secs() const' 
/home/openbts/dev/openbts/Transceiver52M/UHDDevice.cpp:781: undefined reference to `uhd::time_spec_t::get_real_secs() const' 
/home/openbts/dev/openbts/Transceiver52M/UHDDevice.cpp:770: undefined reference to `uhd::get_version_string()' 
./.libs/libtransceiver.a(UHDDevice.o): In function `uhd_device::str_code(uhd::async_metadata_t)': 
/home/openbts/dev/openbts/Transceiver52M/UHDDevice.cpp:958: undefined reference to `uhd::time_spec_t::get_real_secs() const' 
./.libs/libtransceiver.a(UHDDevice.o): In function `async_metadata_t': 
/usr/local/include/uhd/types/metadata.hpp:169: undefined reference to `uhd::time_spec_t::time_spec_t(double)' 
./.libs/libtransceiver.a(UHDDevice.o): In function `uhd_device::setPriority()': 
/home/openbts/dev/openbts/Transceiver52M/UHDDevice.cpp:683: undefined reference to `uhd::set_thread_priority_safe(float, bool)' 
collect2: error: ld returned 1 exit status 
make[2]: *** [transceiver] Error 1 
make[2]: Leaving directory `/home/openbts/dev/openbts/Transceiver52M' 
make[1]: *** [all-recursive] Error 1 
make[1]: Leaving directory `/home/openbts/dev/openbts' 

Antwort

0

Diese sehr symptomatisch ist, mehrere konkurrierende UHD-Installationen zu haben. Vielleicht haben Sie UHD aus dem Repository Ihres Linux Distro installiert und dann UHD wieder manuell installiert, auf? Oder vielleicht haben Sie es beim Erstellen von OpenBTS installiert.

Stellen Sie jedoch sicher, dass Sie nur eine Installation haben, die Ihr Build-System finden wird, sonst würden Sie genau sehen, was Sie gerade erleben.

+0

Ja scheint es zu sein. Als ich meine Shell neu gestartet habe, hatte ich irgendwie die richtigen Einstellungen – user1898027