Thanks Marcus. The dependency of UHD on boost is not an issue; if they are both installed from Ubuntu packages, they link without a problem. The problem was that my code, compiled on one machine, did not link (wrong .so files) with a different version of boost. I think that I can fix that in my C++ client by removing the depenency on boost in my code.
This still leaves another binary compatibility problem that I encountered, that gcc in different versions of Ubuntu generates different symbols for C++ functions, causing linking problems when an .so file from one version of Ubuntu is used on another version. Hopefully the move to the C API will resolve the second problem. The first is indeed easier to solve. On Sun, Jul 16, 2017 at 12:31 PM, Marcus Müller <marcus.muel...@ettus.com> wrote: > Hello Sivan Toledo, > > I'm sorry I'm a bit late to react, but: > > since UHD internally still uses Boost, I'm a little afraid that using the > C API is not a good solution here > Best regards, > Marcus > > On 07/15/2017 12:46 PM, Sivan Toledo via USRP-users wrote: > > I'm converting a CPP code from UHD 3.8.5 to the C api for 3.10. (The main > reason for the conversion is that I binaries of my CPP programs don't run > on both Ubuntu 14 and 16 because of incompatible libboost; hopefully using > the C API and the Ubuntu uhd-host package will resolve this). > > I have a few questions: > > 1. Is the following correct, or do I have to "make" the > string_vector_handle before I pass it to get_rx_gain_names? The manual says > to always make, but my intuition is that get_rx_gain_names will make it for > me, given that it gets a pointer to the handle, not the handle itself. > > uhd_string_vector_handle gain_names; > uhd_usrp_get_rx_gain_names(usrp, 0 /* channel */, &gain_names); > > 2. Is there a C api version of set_rx_gain > <https://files.ettus.com/manual/classuhd_1_1usrp_1_1multi__usrp.html#a8234968ad1fefef299ef9541cc193915> > (double > gain, size_t chan=0)? In the header files I found only set_rx_gain but > with a gain_name argument. The CPP api has two overloaded methods, one with > a gain-name argument and the other without it. Is the convenience method > missing from the C API? Can I invoke it by passing NULL for the gain name? > > Thanks, Sivan Toledo > > > _______________________________________________ > USRP-users mailing > listUSRP-users@lists.ettus.comhttp://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com > > >
_______________________________________________ USRP-users mailing list USRP-users@lists.ettus.com http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com