sorry, i made mistake on compiling. It still report the same link error. Yang On Wed, Jan 4, 2017 at 11:20 PM Yang Yang <comety...@gmail.com> wrote:
> Thanks. > It compiled successfully now under linux. > > > 2017-01-04 12:29 GMT-06:00 Joe Groff <jgr...@apple.com>: > > > > > > On Dec 30, 2016, at 11:17 AM, Yang Yang via swift-users < > swift-users@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 > > > > > > > > >
_______________________________________________ swift-users mailing list swift-users@swift.org https://lists.swift.org/mailman/listinfo/swift-users