Re: [swift-users] question about swift and c callbacks

2017-01-05 Thread Ankit Agarwal via swift-users
I simplified your example package and posted a bug report here:
https://bugs.swift.org/browse/SR-3556

On Thu, Jan 5, 2017 at 9:59 PM, Yang Yang via swift-users <
swift-users@swift.org> wrote:

> 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  wrote:
>
>> Thanks.
>> It compiled successfully now under linux.
>>
>>
>> 2017-01-04 12:29 GMT-06:00 Joe Groff :
>>
>>
>>
>>
>> > 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
>
>


-- 
Ankit
___
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users


Re: [swift-users] question about swift and c callbacks

2017-01-05 Thread Yang Yang via swift-users
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  wrote:

> Thanks.
> It compiled successfully now under linux.
>
>
> 2017-01-04 12:29 GMT-06:00 Joe Groff :
>
>
>
>
> > 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


Re: [swift-users] question about swift and c callbacks

2017-01-04 Thread Yang Yang via swift-users
Thanks.
It compiled successfully now under linux.


2017-01-04 12:29 GMT-06:00 Joe Groff :

>
> > 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


Re: [swift-users] question about swift and c callbacks

2016-12-30 Thread Michael Gottesman via swift-users
Can you create a quick tarball of the swiftpm project. Would expedite the 
answering of the question.

Michael

> On Dec 30, 2016, at 11:17 AM, Yang Yang via swift-users 
>  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?
> 
> Thanks,
> 
> Yang
> ___
> swift-users mailing list
> swift-users@swift.org
> https://lists.swift.org/mailman/listinfo/swift-users

___
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users