Я работал над графическим приложением winit в Rust на MacOS. Размер моего стека по умолчанию на основе компоновщика (ld) составляет 8 МБ.
Я хотел бы знать следующее:
1. Насколько распространен этот способ для графических приложений и т. Д. c. нужно увеличить размер стека по умолчанию на своих целевых системах? Должно ли быть разумным 8 МБ?
2. Я знаю, что в MacOS я не могу запустить это как дочерний поток, я думаю, что библиотека окон не поддерживает циклы событий дочерних потоков. Если разумно использовать больший размер стека, каков наилучший независимый от платформы способ его настройки в Rust? только способ, которым я получил проект для сборки, состоит в том, чтобы вызывать cargo rustc -- -C link-args=-Wl,-stack_size,0x100000000
после построения зависимостей. Если я создаю файл .cargo/config
с указанным выше параметром, зависимости типа libc
перестают говорить, что установка размера стека в качестве параметра компоновщика работает только для двоичных файлов.
Моя попытка .cargo/crate
:
[build]
rustflags = ["-C", "link-args=-Wl,-stack_size,0x100000000"]
Получившаяся ошибка:
Compiling libc v0.2.68
error: linking with `cc` failed: exit code: 1
|
...
= note: ld: -stack_size option can only be used when linking a main executable
clang: error: linker command failed with exit code 1 (use -v to see invocation)