2016-12-13 12 views
2

はここSwiftyモジュールがSwiftPMでobjective-cモジュールにswiftモジュールを使用するには?

// MyStruct.swift 

public struct MyStruct { 
    public var text = "Hello, World!" 

    public init() { 
    } 
} 

そして、私はこのような迅速なモジュールをリンクしようObjc-cliで単純な構造体であるルートディレクトリ

├── Package.swift 
└── Sources 
    ├── Objc-cli 
    │   └── main.m 
    └── Swifty 
     └── MyStruct.swift 

の一例です。悲しいことに、コンパイラは、Objective-Cのモジュール内Swiftyモジュールを認識しない

// Package.swift 

import PackageDescription 

let package = Package(
    name: "MyTest", 
    targets: [ 
     Target(name: "Swifty", dependencies: []), 
     Target(name: "Objc-cli", dependencies: ["Swifty"]), 
    ] 
) 

:ここ

// main.m 

#import <Foundation/Foundation.h> 
@import Swifty <---- Not found 

int main() { 
    NSLog(@"Hello from Objc"); 
    return 0; 
} 

Package.swiftがどのように見えるかです。ここに出力があります:

$ swift build 
Compile Swift Module 'Swifty' (1 sources) 
Compile Objc-cli main.m 
/tmp/TestPackage/Sources/Objc-cli/main.m:10:9: fatal error: module 'Swifty' not found 
@import Swifty 
~~~~~~~^~~~~~ 
1 error generated. 
<unknown>:0: error: build had 1 command failures 

私は何かを見逃してしまったのですか、今のところ不可能ですか?

+0

はあなただけ '@import Swifty'を削除しようとしたことがありますか? – masters3d

+0

@ masters3d私がしようとしているのは、高速モジュールをobjective-cモジュールにインポートすることです。インポートを削除する目的は何ですか? – klefevre

+0

obj-cモジュールが迅速なパッケージ内のTestパッケージである場合、インポートは必要ありません。 – masters3d

答えて

0

SwiftモジュールをCモジュールにインポートすることはできません。別の方法で動作し、CをSwiftにインポートします。

あなたはSwiftPMで詳細な情報を見つけることができます - C language targets

+0

リンクは404ing、ベースページはこちら:https://github.com/apple/swift-package-manager/tree/master/Documentation –

+1

リンクを更新しました。ここはhttps://github.com/apple/swift-package-manager/blob/master/Documentation/Usage.md#c-language-targetsです。 –

関連する問題