kazuki0824 / recisdb-rs

recisdb-rs and b25-sys are more convenient Rust wrapper for libaribb25. recisdb can read both Unix character device-based and BonDriver-based TV sources.
GNU General Public License v3.0
70 stars 4 forks source link

x86_64-pc-windows-gnuでビルドに失敗する #115

Closed kazuki0824 closed 1 week ago

kazuki0824 commented 4 weeks ago
  This warning is for project developers.  Use -Wno-dev to suppress it.
     Called from: [1]   C:/Users/kazuk/Documents/recisdb-rs/b25-sys/externals/libaribb25/CMakeLists.txt
  running: "cmake" "--build" "." "--target" "install" "--config" "Debug" "--parallel" "16"
  C:\Users\kazuk\Documents\recisdb-rs\b25-sys\externals\libaribb25\aribb25\multi2.c:117:13: error: incompatible function pointer types assigning to 'int (*)(void *, int32_t, uint8_t *, int32_t)' (aka 'int (*)(void *, int, unsigned char *, int)') from 'int (void *, int32_t, uint8_t *, intptr_t)' (aka 'int (void *, int, unsigned char *, long long)') [-Wincompatible-function-pointer-types]
          r->decrypt = decrypt_multi2;
                     ^ ~~~~~~~~~~~~~~
  1 error generated.
  C:\Users\kazuk\Documents\recisdb-rs\b25-sys\externals\libaribb25\aribb25\multi2.c:117:13: error: incompatible function pointer types assigning to 'int (*)(void *, int32_t, uint8_t *, int32_t)' (aka 'int (*)(void *, int, unsigned char *, int)') from 'int (void *, int32_t, uint8_t *, intptr_t)' (aka 'int (void *, int, unsigned char *, long long)') [-Wincompatible-function-pointer-types]
          r->decrypt = decrypt_multi2;
                     ^ ~~~~~~~~~~~~~~
  mingw32-make[2]: *** [CMakeFiles\aribb1-objlib.dir\build.make:109: CMakeFiles/aribb1-objlib.dir/aribb25/multi2.c.obj] Error 1
  mingw32-make[2]: *** Waiting for unfinished jobs....
  1 error generated.
  mingw32-make[2]: *** [CMakeFiles\aribb25-objlib.dir\build.make:109: CMakeFiles/aribb25-objlib.dir/aribb25/multi2.c.obj] Error 1
  mingw32-make[2]: *** Waiting for unfinished jobs....
kazuki0824 commented 4 weeks ago

Windows+MinGWはRustでのTierが高いからサポートし続けてたけど、 今回のコードをみるに、multi2の2実装でdecrypt_multi2のシグネチャが微妙に合ってないことが原因っぽくて、きちんと整理しないと今後対応は難しそう これにより、v1.2.2でバイナリが出せていない