For more information, the line that causes error is:
gr::uhd::usrp_source::sptr usrp_source =
gr::uhd::usrp_source::make(device_addr, uhd::stream_args_t("fc32"));
And if I delete the usrp_source::make line, there will be no error. But
even if I change it into the old style of make, the same error output
occurs. Therefore, the problem is about the new make function, which I used
from Revision 338cfae6. I just copied and pasted the three files of the
revision, then make and make install.
Thanks,
Zhihong
On Wed, Feb 10, 2016 at 10:21 PM, Zhihong Luo <[email protected]> wrote:
> Hi James,
>
> I modified the code, uninstalled then make and install again. But when I
> tried to generate the C API file (which can be generated before I did all
> these), it outputs errors:
>
> CMakeFiles/tags.dir/tags.cc.o: In function `_main(int, char**)':
> tags.cc:(.text+0x892): undefined reference to
> `gr::uhd::usrp_source::make(uhd::device_addr_t const&, uhd::stream_args_t
> const&, bool)'
> collect2: error: ld returned 1 exit status
> make[2]: *** [apps/tags] Error 1
> make[1]: *** [apps/CMakeFiles/tags.dir/all] Error 2
> make: *** [all] Error 2
>
> It has errors on usrp_source, which I just modified the code of. I checked
> the source files, they are the same as Revision 338cfae6. So where can my
> mistakes be? Thanks in advance.
>
> Zhihong
>
> On Wed, Feb 10, 2016 at 8:38 PM, James Humphries <
> [email protected]> wrote:
>
>> You can uninstall in the build directory:
>>
>> sudo make uninstall
>>
>>
>>
>> On Wed, Feb 10, 2016 at 8:33 PM, Zhihong Luo <[email protected]> wrote:
>>
>>> Hi James,
>>>
>>> Actually, the commit was only a month ago, I checked my source code and
>>> it is different from the revised version. So just to make sure, what I need
>>> to do is to change the source files (usrp_source_impl.cc, usrp_source.h
>>> etc), then
>>>
>>> mkdir build (under gnuradio/)
>>> cd build
>>> cmake ..
>>> make
>>> make test
>>> sudo make install
>>>
>>> Then the lib files will be overwritten? Or do I need to delete something
>>> before doing so?
>>>
>>> Thanks,
>>> Zhihong
>>>
>>> On Wed, Feb 10, 2016 at 7:43 PM, James Humphries <
>>> [email protected]> wrote:
>>>
>>>> Hi Zhihong,
>>>>
>>>> 4ae7a6015ba719a4720f61cc6f3857de2ebda89f is the commit hash that refers
>>>> to a specific commit on the GNU Radio repository.
>>>>
>>>> If you built GNU Radio recently (I believe this commit was last
>>>> August), then you should be OK.
>>>>
>>>> -Trip
>>>>
>>>> On Wed, Feb 10, 2016 at 6:42 PM, Zhihong Luo <[email protected]> wrote:
>>>>
>>>>> Hi Martin,
>>>>>
>>>>> What I want to do is to use the stream command to receive data, put it
>>>>> into the file, rest for like 2s, then start receiving again. I think I can
>>>>> do this by using multiple NUM SAMPLE AND DONE commands?
>>>>>
>>>>> I don"t really understand the stop() here, I am using it because the
>>>>> manual seems to say so? Previously, I simply called the issue-stream-cmd
>>>>> function before the flow graph start, but the file grew large very
>>>>> rapidly,
>>>>> so I was thinking maybe the stop() is the right way to do it. Now I have
>>>>> no
>>>>> idea how to call it.
>>>>>
>>>>> Sorry, but what is 4ae7a6015ba719a4720f61cc6f3857de2ebda89f ?
>>>>>
>>>>> Thanks a lot,
>>>>> Zhihong
>>>>> 2016年2月10日星期三,Martin Braun <[email protected]> 写道:
>>>>>
>>>>>> Which version are you running?
>>>>>> 4ae7a6015ba719a4720f61cc6f3857de2ebda89f
>>>>>> should fix this issue.
>>>>>>
>>>>>> Also, is this really what you want to happen? If you just call
>>>>>> issue_stream_cmd() with a STOP command, it will stop, but all the data
>>>>>> will still flow through the graph, instead of getting flushed.
>>>>>> Especially as you are stopping and starting the flow graph.
>>>>>>
>>>>>> My guess is you don't really need stop() here.
>>>>>>
>>>>>> Cheers,
>>>>>> M
>>>>>>
>>>>>>
>>>>>> On 02/10/2016 03:07 PM, Zhihong Luo wrote:
>>>>>> > Hi All,
>>>>>> >
>>>>>> > In the manual, it says to use issue_stream_cmd:
>>>>>> >
>>>>>> > After starting the flow graph, the user should call stop()
>>>>>> > <
>>>>>> https://gnuradio.org/doc/doxygen/classgr_1_1block.html#a0863bc16f7c84adf4cddf5d53124450e
>>>>>> >on
>>>>>> > this block, then issue any desired arbitrary stream_cmd_t structs
>>>>>> to the
>>>>>> > device
>>>>>> >
>>>>>> > Therefore, I tried to stop() then issue the stream command, but it
>>>>>> ran
>>>>>> > into segmentation fault. My code is:
>>>>>> >
>>>>>> > uhd::stream_cmd_t
>>>>>> > stream_cmd(uhd::stream_cmd_t::STREAM_MODE_NUM_SAMPS_AND_DONE);
>>>>>> > size_t num_requested_samples= 10000;
>>>>>> > stream_cmd.num_samps = size_t(num_requested_samples);
>>>>>> > stream_cmd.stream_now = true;
>>>>>> > stream_cmd.time_spec = uhd::time_spec_t();
>>>>>> > ...
>>>>>> > std::cout << "starting flow graph" << std::endl;
>>>>>> > tb->start();
>>>>>> > usrp_source->stop();
>>>>>> > usrp_source->issue_stream_cmd (stream_cmd);
>>>>>> >
>>>>>> > Even if I delete the issue_stream_cmd line, there is still a
>>>>>> > segmentation fault. Can someone point out where I made a mistake?
>>>>>> Thanks.
>>>>>> >
>>>>>> > Zhihong Luo
>>>>>> >
>>>>>> >
>>>>>> > _______________________________________________
>>>>>> > Discuss-gnuradio mailing list
>>>>>> > [email protected]
>>>>>> > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>>>>>> >
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> Discuss-gnuradio mailing list
>>>>>> [email protected]
>>>>>> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Discuss-gnuradio mailing list
>>>>> [email protected]
>>>>> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>>>>>
>>>>>
>>>>
>>>
>>
>
_______________________________________________
Discuss-gnuradio mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio