You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

64位Windows系统下JavaBDD搭配CUDD后端运行报错求助

在64位Windows系统中使用CUDD后端运行JavaBDD遇到UnsatisfiedLinkageError问题

我在64位Windows系统中尝试用CUDD(或BuDDy)后端运行JavaBDD时遇到问题:从JavaBDD官方渠道获取的包附带32位.dll文件,无法在64位JVM中使用,因此我从CUDD的Git仓库编译64位库。

CUDD编译步骤(Ubuntu WSL下使用mingw-64)

编译命令如下:

git clone https://github.com/ivmai/cudd.git .
aclocal
automake
mkdir build
cd build
../configure --enable-shared --enable-dddmp --enable-obj --host=x86_64-w64-mingw32 --build=x86_64-linux-gnu --prefix=... (local directory)
make
make install

编译完成后,在--prefix指定的目录中得到libcudd-3-0-0-0.dll,将其重命名为JavaBDD要求的cudd.dll并复制到运行JAR的目录下。

问题现象

之前自带的dll完全无法加载,现在新编译的库能被正常加载(NativeLibraries::findFromPaths(...)返回了预期路径下的NativeLibrary),但在执行CUDDFactory.registerNatives()或相关静态代码时,抛出以下错误:

UnsatisfiedLinkageError {
   DetailMessage: net/sf/javabdd/CUDDFactory.registerNatives()V
}

我未在其他系统上测试过,曾尝试通过ChatGPT解决但未得到有效帮助。若需更多信息可告知。

JUnit测试示例

用于复现问题的Java测试代码:

@Test
public void registerNativeTest() {
    System.loadLibrary("cudd");
    registerNatives();
}

private static native void registerNatives();

内容的提问来源于stack exchange,提问作者derM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 22:15:01