Я знаю, что в swift можно взаимодействовать с c, используя функцию attr для функции в быстром модуле @_silgen_name
. Есть ли способ сделать это с символом, определенным в файле сборки? Я бы хотел сделать syscalls с помощью Swift. Вот почему я спрашиваю., вызывающий функцию, определенную в сборке из swift
ответ
Создайте файл bridge.h и поместите прототип функции в этот файл.
Например ваш код сборки:
.globl _add // make it global so that others can find this symbol
....
_add: // int add(int a, int b)
movl %esi, %eax
addl %edi, %eax
ret
Затем в преодолении header.h файл
int add(int a, int b);
ИЛИ
определить это в верхней части модуля быстрого
@_silgen_name("add") func add(a: Int32, b: Int32) -> Int32
Затем в swift вы можете использовать его:
let a = add(1, 2);
Какие флаги я могу передать в компилятор swiftc, чтобы связать файл сборки? –
Просто введите один и тот же проект XCode. –
Я делаю это на Linux, без xcode. –
- 1. javascript, вызывающий функцию из прототипа
- 2. Python, вызывающий функцию
- 3. MVC3 не вызывающий контроллер во внешней сборке
- 4. Ajax, Bonfire, вызывающий функцию контроллера из вида
- 5. MS Access, вызывающий функцию
- 6. , вызывающий функцию полиморфно
- 7. , вызывающий вложенную функцию в классе
- 8. , вызывающий функцию, находящуюся в ней
- 9. порядок asynctask, вызывающий функцию из ссылочного класса
- 10. Java, вызывающий синхронизированную функцию из условия while
- 11. jquery, вызывающий функцию
- 12. PHP, вызывающий функцию сбой
- 13. jQuery, вызывающий предопределенную функцию
- 14. Действовать на объект, вызывающий функцию?
- 15. Swift 2: Как различить локальный var и определенную функцию?
- 16. iOS Swift dequeueReusableCellWithIdentifier, вызывающий перекрытие
- 17. Вызвать определенную функцию из библиотеки Windows
- 18. Вызвать уже определенную функцию .onClick() из jQuery
- 19. AJAX: вызвать определенную функцию из другой страницы
- 20. Swift - Как вызвать функцию на определенную дату и время
- 21. python, вызывающий функцию внутри функции
- 22. Tkinter, вызывающий функцию с аргументами
- 23. Как исключить определенную функцию из gprof?
- 24. Draw определенную функцию в Python
- 25. Используя определенную функцию в MySQL
- 26. как назвать определенную функцию
- 27. Отключить определенную функцию jQuery
- 28. вычислить определенную функцию
- 29. Попытка построить определенную функцию
- 30. iphone development: nstimer, вызывающий функцию
Скомпилированный объектный файл не имеет понятия, был ли он скомпилирован с C или собран на языке ассемблера. –
@PaulGriffiths, как компилятор знает, где символ, который находится в asm-файле, когда он компилирует быстрый модуль? –
Точно так же, как он знает, где символ с исходным C-файлом - он выглядит в таблице символов объектного файла. –