[swift-users] question about swift and c callbacks
Joe Groff
jgroff at apple.com
Wed Jan 4 12:29:26 CST 2017
> On Dec 30, 2016, at 11:17 AM, Yang Yang via swift-users <swift-users at swift.org> wrote:
>
> I try to wrap a c library in swift package named Test.
> The code looks like this:
>
> Test1.h
>
> struct MyParams {
> int (*func)();
> };
>
> typedef struct MyParams MyParams;
>
> Test2.h
> #include "Test1.h"
>
> static int test(){
> return 0;
> }
>
> void myTest()
> {
> MyParams params;
> params.func = test;
> }
>
>
> Then I try to import the package into swift code and use
> in Test.swift.
> ************************
> import Test
>
> class TestSwift {
> func runtest(){
> myTest()
> }
> }
>
> However, the compiler report link error:
> function myTest: error: undefined reference to 'test'
>
> If I comment out
> "params.func = test;" in myTest.
>
> It successfully build. How should I handle this situation?
Try making `test` static inline instead of just static.
-Joe
More information about the swift-users
mailing list