C言語の連携もObjective-Cのとき同じ感じでできそう。 てか出来た。
以前、Xcodeが必須と思ってた How to call C from Swift? - Stack Overflow を参考にした。
C言語のソースファイル
#include <stdio.h> void getInput(int *output) { scanf("%i", output); }
C言語のファイルをコンパイルし、UserInput.oを生成。
xcrun clang UserInput.c -o UserInput.o -c
そしてSwiftのファイル自体は
これはインプットされたものをoutputに格納させて、出力している。 ちなみに、数字のみ対応。
import Foundation var output: CInt = 0 getInput(&output) println(output)
ヘッダファイル
void getInput(int *output);
xcrun swiftc -c main.swift -import-objc-header cliinput-Bridging-Header.h -F /System/Library/Frameworks -I /usr/include
最終的に行うのは
今まで生成した、SwiftのコンパイルされたUserInput.oと C言語のmain.oを元に、Inputという実行ファイルが生成される。
xcrun swiftc -o Input UserInput.o main.o
実行
./Input
- 作者: 柴田望洋
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2004/08/28
- メディア: 単行本
- 購入: 17人 クリック: 184回
- この商品を含むブログ (45件) を見る
14歳からはじめるC言語わくわくゲームプログラミング教室 Visual Studio 2013編
- 作者: 大槻有一郎
- 出版社/メーカー: ラトルズ
- 発売日: 2014/06/20
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
- 作者: 清水美樹
- 出版社/メーカー: 工学社
- 発売日: 2014/08
- メディア: 単行本
- この商品を含むブログ (1件) を見る