Hi!
Let's say, I downloaded an Objective-C framework from the web. I'm going to use this one, just because it showed up first on a GitHub search: GitHub - SDWebImage/SDWebImage: Asynchronous image downloader with cache support as a UIImageView category
Now, I'm going to use it in my swift script A.swift
:
import AppKit
import SDWebImage
print(NSImageView().sd_setImage)
I have copied the SDWebImage.framework
into my working directory, too.
Now, I'm doing this:
swiftc A.swift -I . -L . -lSDWebImage
But it doesn't work, because error: no such module 'SDWebImage'
Ok, that makes sense, since the .framework
isn't really the .dylib
, but a directory containing all kinds of things.
So I do this:
swiftc A.swift -I SDWebImage.framework/ -L SDWebImage.framework/ -lSDWebImage
It seems to be smart enough to look for the headers etc., but then this happens:
<module-includes>:1:9: note: in file included from <module-includes>:1:
#import "Headers/SDWebImage.h"
^
[...]/Headers/SDWebImage.h:10:9: error: 'SDWebImage/SDWebImageCompat.h' file not found
#import <SDWebImage/SDWebImageCompat.h>
^
A.swift:2:8: error: could not build Objective-C module 'SDWebImage'
import SDWebImage
^
So it says it can't find SDWebImage/SDWebImageCompat.h
. Which makes sense, because that's how it is referenced. But of course, all the headers are now in the Headers
directory.
What am I doing wrong? What's really going on inside of the compiler?
Ultimately, I'd like to be able to import any Objective-C .framework
(or hybrid frameworks with umbrella header), I'm only using this one as a test.
Thank you in advance,
best regards,
Vogel.