discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Problems using multiple C files in OOT Block


From: Boris Marjanovic
Subject: Re: Problems using multiple C files in OOT Block
Date: Thu, 21 Oct 2021 12:41:25 +1100

Hi George,

If I understood correctly, the module compiles correctly. When you start/run the graph it complains it can not find/'see' the function.
This could be related to default visibility of the objects. If you look at the code for your block my_adder_ff, there should be a line similar to
    class TUTORIAL_API my_adder_ff { ....
The TUTORIAL_API (or whatever it is called) is a macro defined in api.h and eventually evaluates (for GNUC) to
     __attribute__ ((visibility ("default")))
which ensures visibility to other modules. You can check the built library for your module using nm command, e.g.(I'm just guessing library name libTutorial.so)
    $ nm -C libTutorial.so | grep -i my_add
If the function is 'qualified' with t (lower case) it will not be visible. If it is qualified with uppercase 'T', then it is visible

An easy thing to try to fix is to add to the function declaration in the header file
    float TUTORIAL_API my_add(float, float)
and rebuild.

If curious about the visibility attribute, there is nice bit of an explanation in https://stackoverflow.com/questions/52719364/how-to-use-the-attribute-visibilitydefault

Hope that made sense
Cheers
Boris

On Thu, 21 Oct 2021 at 08:02, George Edwards <gedwards.eng@gmail.com> wrote:
Hi Vasil,

Thank you very much!

I have never used the Git Repository so I am setting up one and will post my code once that is done. I will let you know when it is posted.

Again, thank you so much for your offer.

Regards,
George

On Wed, Oct 20, 2021 at 1:19 AM Vasil Velichkov <vvvelichkov@gmail.com> wrote:
Hi George,

On 19/10/2021 16.55, George Edwards wrote:
> Below is a description of what I did:
> ....

What you did is correct and should be enough.

> When I compiled and run, it failed because it could not see the function
> my_add.

What is the exact error message? How did you run it? Can you provide the full source code of this test module (as a git repo or a tarball file on some file sharing website).

Regards,
Vasil


reply via email to

[Prev in Thread] Current Thread [Next in Thread]