[swift-build-dev] [SwiftPM] [swift-build] How to use C module in Swift REPL
Ankit Agarwal
ankit at ankit.im
Wed May 25 15:43:05 CDT 2016
I got this working by generating dylib for the C source
https://developer.apple.com/library/mac/documentation/DeveloperTools/Conceptual/DynamicLibraries/100-Articles/CreatingDynamicLibraries.html
Steps:
$ cd Fixtures/ClangModules/CLibrarySources/Sources
$ swift build
$ cp ../.build/debug/CLibrarySources.build/module.modulemap . #copy the
module map
$ clang -dynamiclib -std=gnu99 Foo.c -current_version 1.0
-compatibility_version 1.0 -fvisibility=hidden -o libFoo.dylib
$ swift -I include -L. -lFoo
1> import CLibrarySources
2> foo()
$R0: Int32 = 5
On Thu, May 26, 2016 at 1:13 AM, Daniel Dunbar via swift-build-dev <
swift-build-dev at swift.org> wrote:
> Unfortunately, the error reporting isn't very good when LLVM tries to load
> a library (inside the JIT) and fails.
>
> This is probably worth reporting as a bug. I'm not sure offhand and
> actually investigating this currently requires digging in to what is
> actually happening under the covers between the Swift importer and the LLVM
> JIT.
>
> - Daniel
>
> On May 25, 2016, at 12:38 PM, bhargav gurlanka via swift-build-dev <
> swift-build-dev at swift.org> wrote:
>
> Hi,
>
> I have a swift package with following layout:
> .
> ├── Package.swift
> ├── Sources
> │ ├── BarCModule
> │ │ ├── Bar.c
> │ │ └── include
> │ │ └── Bar.h
> │ └── MyApp
> │ └── main.swift
> └── Tests
>
> After running swift build, I can see libBarCModule.so under .build/debug.
> How can I use this library in REPL?
>
> I've tried:
>
> $ swift -I.build/debug -L.build/debug -lBarCModule
> $ LD_LIBRARY_PATH=.build/debug swift -I.build/debug -L.build/debug
> -lBarCModule
>
> But in both cases, I couldn't call a function defined inside my C Module.
>
> 1> import BarCModule
> 2> say_hi
> error: Couldn't lookup symbols:
> _say_hi
>
>
>
>
> Regards,
> Bhargav Gurlanka
> _______________________________________________
> swift-build-dev mailing list
> swift-build-dev at swift.org
> https://lists.swift.org/mailman/listinfo/swift-build-dev
>
>
>
> _______________________________________________
> swift-build-dev mailing list
> swift-build-dev at swift.org
> https://lists.swift.org/mailman/listinfo/swift-build-dev
>
>
--
Ankit
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-build-dev/attachments/20160526/2ca1adf3/attachment.html>
More information about the swift-build-dev
mailing list