boj-rs/basm-rs

프로젝트 빌드 시 `E0787` 에러 발생

Closed this issue · 2 comments

윈도우 11 환경에서 레포지토리를 갓 설치한 뒤 .\release-64bit-windows.cmd이나 cargo build를 바로 실행하면 다음과 같은 에러가 납니다.
에러 로그:

   Compiling basm-std v0.1.0 (C:\Users\askmi\Desktop\basm-rs\basm-std)
error[E0787]: the `asm!` macro is not allowed in naked functions
   --> basm-std\src\platform\codegen.rs:134:9
    |
134 | /         asm!(
135 | |             "clc",                             ... 
136 | |             "enter  64, 0",                    ... 
137 | |             "mov    rbx, rcx",                 ... 
...   |
181 | |             options(noreturn)
182 | |         );
    | |_________^ consider using the `naked_asm!` macro instead

error[E0787]: the `asm!` macro is not allowed in naked functions
   --> basm-std\src\platform\codegen.rs:337:9
    |
337 | /         asm!(
...   |
355 | |             options(noreturn)
356 | |         );
    | |_________^ consider using the `naked_asm!` macro instead

For more information about this error, try `rustc --explain E0787`.
error: could not compile `basm-std` (lib) due to 2 previous errors

solution.rs (변경사항 없음)

use basm::platform::io::{Print, Reader, ReaderTrait, Writer};
pub fn main() {
    let mut reader: Reader = Default::default();
    let mut writer: Writer = Default::default();
    let a = reader.i64();
    let b = reader.i64();
    writer.println(a + b);
}

러스트 버전:

  • rustc 1.83.0-nightly (3ae715c8c 2024-10-07)
  • rustup 1.27.1 (54dd3d00f 2024-04-24)

안녕하세요. 이슈를 남겨주셔서 감사합니다. 해당 이슈는 최신 버전의 rustc nightly에서 naked_asm 부분이 변경되면서 발생한 것으로 추정됩니다. 로컬에서 재현이 바로 되어 해당 부분을 수정하였습니다. 혹시 최신 커밋에서 문제가 해결되었는지 테스트 후 결과 공유 가능하실까요?

이제 잘 작동합니다! 해결해주셔서 감사합니다 :D