Как элегантно поддерживать сборку ARM как на MacOS, так и на Android?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как элегантно поддерживать сборку ARM как на MacOS, так и на Android?

Сообщение Anonymous »

Сейчас я пишу проект, используя язык C и ассемблер напрямую.
И я скомпилировал проект для Android, все было нормально.
Но когда я скомпилировал проект на MacOS (с Apple Silicon), он потерпел неудачу. И я понял, что ассемблерные коды, скомпилированные на MacOS, будут добавлять ко всем символам префикс _.
Например:

Код: Выделить всё

int test_func();

int main() {
printf("%d\n", test_func());
return 0;
}

Код: Выделить всё

.global test_func
test_func:
mov x0, x1
ret
При компиляции этого кода в MacOS вместо символа test_func используется _test_func.
При компиляции этого кода для Android символ test_func по-прежнему остается самим собой.
Один из способов, который я придумал, — это определить макрос, например: #define test_func _test_func, если платформа соответствует MacOS. Но окажется, что другие разработчики не смогут быстро найти объявления.
Поэтому мне интересно, существует ли элегантный способ поддержки обеих платформ без слишком большого изменения исходного кода.

Подробнее здесь: https://stackoverflow.com/questions/793 ... nd-android
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»