万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

  • ・資産運用おすすめ
    10万円は1000円くらい利益
    資産運用ブログ アセマネ
    • ・寄付お願いします
      YENTEN:YYzNPzdsZWqr5THWAdMrKDj7GT8ietDc2W
      BitZenny:ZfpUbVya8MWQkjjGJMjA7P9pPkqaLnwPWH
      c0ban:8KG95GXdEquNpPW8xJAJf7nn5kbimQ5wj1
      Skycoin:KMqcn7x8REwwzMHPi9fV9fbNwdofYAWKRo

    SwiftとC連携 without Xcode

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

    このファイルがおそらくSwiftC言語を繋ぐもの。

    コンパイル

    Swiftのファイルをコンパイルし、main.oを生成。

    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

    新版 明解C言語 入門編

    新版 明解C言語 入門編

    14歳からはじめるC言語わくわくゲームプログラミング教室 Visual Studio 2013編

    14歳からはじめるC言語わくわくゲームプログラミング教室 Visual Studio 2013編

    はじめてのSwiftプログラミング (I・O BOOKS)

    はじめてのSwiftプログラミング (I・O BOOKS)